Funções recursivas é a simplificação de uma rotina em sub-rotinas do mesmo tipo onde seu mecanismo a permite fazer chamada a si mesma forma direta ou indireta.
Em geral, uma definição recursiva é definida por casos: um número limitado de casos base e um caso recursivo. Os casos base são geralmente situações triviais e não envolvem recursão e também pode ser chamadas de condição de parada, aonde irá se encerrar as chamadas recursivas.
Um exemplo comum usando recursão é a função para calcular o fatorial de um natural N.
Nesse caso, no caso base o valor de 0 é 1 (aqui é nossa condição de parada). No caso recursivo, dado um N > 0, o valor de N é calculado multiplicando por N o valor de (N-1), e assim sucessivamente, de tal forma que N tem como valor N * (N-1) * (N-2) * ... * (N-N), onde (N-N) representa obviamente o caso base. Observe o exemplo em português estruturado:
função fatorial(x: inteiro): inteiro
inicio
se x = 0 então
fatorial <- 1
senão
fatorial <- x * fatorial(x - 1)
fim_se
fim
As principais características que posso citar são o tamanho compacto, a expressividade do código e o autocontrole de estado. As vantagens que pode ser citadas são a elegância e clareza do código, uma vez que você abstrai teu problema em uma única solução compacta e também a simplicidade de programar. As desvantagens que podemos ter são a ineficiência do código, pois pode acabar fazendo muitas chamadas a si mesmas, dificuldade para a interpretação de erros, lentidão na execução entre outros.
As principais características que posso citar são o tamanho compacto, a expressividade do código e o autocontrole de estado. As vantagens que pode ser citadas são a elegância e clareza do código, uma vez que você abstrai teu problema em uma única solução compacta e também a simplicidade de programar. As desvantagens que podemos ter são a ineficiência do código, pois pode acabar fazendo muitas chamadas a si mesmas, dificuldade para a interpretação de erros, lentidão na execução entre outros.
Para escrever sua resposta aqui, entre ou crie uma conta
Algoritmo e Logica de Programacao
•UNIASSELVI
Compartilhar