Escolar Documentos
Profissional Documentos
Cultura Documentos
A funo recursiva chama a si mesma passando parmetros diferentes para sua prxima chamada.
Critrio de sada
Toda funo recursiva deve possuir um critrio de sada, ou seja, uma forma de terminar a execuo da funo, do contrario, ela ser chamada infinitamente. A grande vantagem da recurso est na possibilidade de usar um programa de computador finito para definir, analisar ou produzir um estoque potencialmente infinito de sentenas, design ou outros dados.
vantagens da recursividade
usando a recursividade possvel reaproveitar uma funo varias vezes. como no exemplo do fatorial torna-se muito mais simples (computacionalmente falando) a obteno do resultado.
} static void Main(string[] args) { Console.WriteLine("*** Calcular Fatorial ***"); Console.Write("Digite um nmero: "); string num = Console.ReadLine(); Console.WriteLine("Fatorial de {0}:", num); Console.WriteLine(Fatorial(Convert.ToInt16(num))); Console.ReadLine(); Console.ReadKey(); }
Exemplos de Recursividade
Funo que retorna a soma dos nmeros de 0 at n int soma(int n) { if (n > 0) return n + soma(n - 1); else return 0; } Funo para dividir nmeros utilizando somente soma e subtrao Funo divisaoRec(inteiro num, inteiro den) retorna Inteiro Inicio Se (num < den) Ento Funo_Retorna(0)
Seno Funo_Retorna(divisaoRec(num-den, den) + 1) Fim_Se Fim Funes recursivas tambm podem ser usadas para acessar elementos de vetores, no exemplo abaixo mostrada uma funo recursiva que retorna a soma dos elementos de um vetor.
int somador(int vetor[], int posicao) { if (posicao >= 0) { return vetor[posicao] + somador(vetor, posicao - 1); } }