Trabalho De PC 1
Recursividade, alocação de memória e estruturas de dados.
Alunos: Matheus Rodrigues Resende Rafaela Cristina Oliveira Guimarães
Curso: Engenharia Elétrica
Disciplina: Programação de Computadores
Funções Recursivas
Função recursiva é aquela que é capaz de chamar a si própria durante a execução do código. Deve existir uma condição de parada bastante evidente e que deve ser sempre alcançada para que o código fique legível e que a função não fique infinitamente em um loop.
Então em uma função recursiva é uma boa prática de programação seguir a seguinte ordem:
1 – Condição de parada;
2 – Processamento;
3 – Chamada Recursiva;
A condição de parada deve conter um teste para o término da função, esse teste deve ser teoricamente sempre atingível para evitar-se um loop infinito. Se essa condição de parada for atingida, a função deve parar e retornar seu valor (se existir). O processamento é onde a função faz seus cálculos e alterações nos valores das variáveis envolvidas ou ainda outras chamadas de funções. A chamada recursiva é onde a função chama a si própria retornando a execução para o início da função.
Existe desvantagens nas funções recursivas que fazem essas funções serem evitadas, pois geralmente são mais difíceis de entender (legibilidade do código) caso o problema não seja naturalmente recursivo, e também são, em maioria, mais lentas que suas respectivas soluções não recursivas. Normalmente uma função recursiva pode ser substituída por alguma função que use laços for ou while.
A recursão ainda pode ocorrer de duas maneiras, diretamente, que é onde a chamada para a função se encontra na própria função, ou indiretamente, em que a função chama outra função (ou uma série de funções) que no final acaba retornado à função inicial.
Exemplo mais comum é a função de calcular o fatorial de um número, que é um problema naturalmente recursivo: int fatorial(int