Julgue os próximos itens, relativos à pesquisa de dados e op...

Próximas questões
Com base no mesmo assunto
Q328377 Algoritmos e Estrutura de Dados
Julgue os próximos itens, relativos à pesquisa de dados e operações básicas sobre estrutura de dados.


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.
Alternativas

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