Funçoes recursivas

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (276 palavras )
  • Download(s) : 0
  • Publicado : 24 de setembro de 2011
Ler documento completo
Amostra do texto
1. Funções Recursivas
Qualquer função em linguagem C/C++ pode ser chamada de um modo recursivo, isto é, uma
função pode chamar-se a si própria. O número de vezes queuma função pode ser chamada
recursivamente é limitado ao tamanho da pilha (stack), se este valor for alcançado, o
programa termina com “error: Stack Fault” ou “StackOverflow”.
Definição:
Função Recursiva é uma função que invoca a si própria, ou invoca outra função, e na
sequência das diversas subfunções, uma das subfunções invocaa primeira função.
Cada vez que uma função é chamada de forma recursiva, é alojado e guardado uma cópia
dos seus parâmetros por forma a não perder os valores dosparâmetros das chamadas
anteriores. Em cada instância da função, só são directamente acessíveis os parâ etros
criados para esta instância, não sendo directamente acessíveisos parâmetros de outras
instâncias.
A informação guardada na invocação de uma função é designada por Estrutura de
Invocação e consiste basicamente na seguinteinformação:
- Endereço de retorno (quando a função terminar o programa deve continuar a sua
execução na linha seguinte à invocação da função)
- Estado dos registos e flags doCPU
- Variáveis passadas como argumentos para a função (por valor, referência, etc.)
- Variável de retorno (por valor, referência, etc.)
A invocação de uma funçãorecursiva é igual à invocação de uma função não recursiva, na
qual é necessário guardar uma estrutura de invocação, sendo esta estrutura libertada depois
do fim daexecução da função e afectação/actualização do valor de retorno.
./012
3 45 4676/
849:1
7:/936/; 2
numero;
fact = factorial1(numero);
cout
tracking img