Em um programa, você precisa calcular o fatorial de um número usando recursão. Qual parte do algoritmo é…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em um programa, você precisa calcular o fatorial de um número usando recursão. Qual parte do algoritmo é crucial para evitar loops infinitos?
- A) Valor inicial
- B) Condição de parada
- C) Variáveis globais
- D) Saídas do programa
- E) Parâmetros da função
✅ Resposta correta: alternativa B
Resolução passo a passo
- Na recursão, uma função chama a si mesma com argumentos cada vez menores ou mais próximos de um estado final. Sem um ponto em que a chamada deixa de acontecer, a função nunca termina e gera um loop infinito (na prática, estouro de pilha).
- No cálculo do fatorial, por exemplo, n! = n * (n-1)!, com a regra de que 0! = 1. A condição de parada é justamente o caso base (se n = 0, retorne 1), que interrompe as chamadas recursivas.
- Portanto, a parte crucial para evitar loops infinitos é a condição de parada, alternativa B, que é também o gabarito oficial.
- Por que as outras estão erradas: A) o valor inicial é um dado de entrada e não impede a repetição das chamadas; C) variáveis globais podem até ser usadas, mas não garantem o término da recursão; D) as saídas do programa são resultados produzidos e não controlam as chamadas; E) os parâmetros da função transportam os dados de cada chamada, mas sem uma condição de parada eles não evitam a recursão infinita.
💡 Dica: Identifique a condição de parada da recursão.
Alternativa por alternativa
O aluno pode imaginar que basta definir um valor inicial correto para a função não se repetir indefinidamente, confundindo o ponto de partida com o critério de término.
Por que engana: Confundir a condicao de parada com outras partes do algoritmo, levando a loops infinitos.
A condição de parada limita a profundidade da recursão.
O aluno pode supor que guardar o estado em variáveis globais controla o fluxo das chamadas e, assim, impede o loop, quando na verdade isso não garante o término da recursão.
O aluno pode associar o controle do programa às saídas (resultados impressos ou retornados), sem perceber que elas são consequência do cálculo e não o que interrompe as chamadas.
O aluno pode achar que, por os parâmetros mudarem a cada chamada, eles sozinhos já encerram a recursão, esquecendo que é preciso um caso base explícito para parar.
Raio-X da questão
recursão e fatorial
avaliacao
recursao basica · conceito de funcao
Revisar o conceito de recursão e suas condições de parada.
Confundir a condicao de parada com outras partes do algoritmo, levando a loops infinitos.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Durante uma campanha de arrecadação, uma escola receberá alimentos e produtos de higiene para montar cestas destinadas a…
- Em um exercício de preparação para períodos de chuva intensa, uma central municipal de Defesa Civil precisa localizar…
- Em ações de fiscalização ambiental no Brasil, imagens de satélite podem ser comparadas em diferentes datas para indicar…
- Uma família criou um programa para organizar as compras do mês. O programa recebe os preços, soma os produtos e…
- — Sem conexão estável no rio, o alerta precisa aparecer no próprio tablet — afirmou a técnica que acompanha sons de aves…
- Falhas em formulários digitais de serviços públicos levaram um setor de tecnologia a testar cinco programas de análise…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
