Julgue os próximos itens, relativos à pesquisa de dados e op...
Na implementação de recursividade, uma das soluções para que se evite o fenômeno de terminação do programa - que possibilita a ocorrência de um looping infinito - é definir uma função ou condição de terminação das repetições.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - Certo
A questão aborda um tema fundamental em Algoritmos e Estrutura de Dados, que é a recursividade. Esse conceito é amplamente utilizado em programação para resolver problemas que podem ser divididos em subproblemas menores do mesmo tipo.
Quando falamos de recursividade, estamos nos referindo a uma técnica onde uma função chama a si mesma para resolver um problema. Contudo, para que essa técnica funcione corretamente e não cause problemas como o looping infinito, é essencial que haja uma condição de terminação, também chamada de caso base.
Vamos detalhar cada ponto para tornar o entendimento mais claro:
Por que a alternativa C está correta?
A alternativa C está correta porque, em uma implementação recursiva, é necessário definir uma condição de terminação para evitar que a função fique chamando a si mesma indefinidamente. Sem essa condição, o programa entraria em um loop infinito, consumindo recursos até causar um estouro de pilha (stack overflow).
Um exemplo clássico é a função de cálculo do fatorial:
int fatorial(int n) { if (n == 0) { // Condição de terminação return 1; } else { return n * fatorial(n - 1); // Chamada recursiva } }
Nesse exemplo, a condição de terminação (caso base) é quando n == 0. Se não fosse definida, a função continuaria a se chamar indefinidamente, resultando em um loop infinito.
Por que a alternativa E está incorreta?
A alternativa E está incorreta porque ignora a necessidade crucial de uma condição de terminação nas chamadas recursivas. Sem essa condição, a função nunca saberá quando parar, tornando-se impossível evitar um loop infinito.
Portanto, compreender a importância da condição de terminação em recursividade é fundamental para evitar problemas e garantir que a função alcance uma solução final.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
sim, tem que se definir uma condição para terminar a recursão
"Iniciantes em recursão ficam frequentemente confusos pela sua aparente circularidade, até que eles compreendem que a condição de término é fundamental."
https://pt.wikipedia.org/wiki/Recursividade
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo