Em uma função recursiva que busca o maior número em uma lista, o que acontece se não houver uma condição de…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em uma função recursiva que busca o maior número em uma lista, o que acontece se não houver uma condição de parada?
- A) A função retornará o primeiro número.
- B) Um erro de estouro de pilha pode ocorrer.
- C) A lista será ordenada automaticamente.
- D) A função terminará sem resultado.
- E) O último número da lista será considerado.
✅ Resposta correta: alternativa B
Resolução passo a passo
- Na recursão, uma função chama a si mesma com um subproblema menor. A condição de parada (caso base) é o que interrompe essas chamadas e permite devolver um valor. Passo 2: Sem condição de parada, a função nunca deixa de se chamar. Cada chamada ocupa espaço na pilha de execução (registro de ativação), e essa pilha acaba se esgotando. Passo 3: Quando a memória da pilha se esgota, ocorre um erro de estouro de pilha (stack overflow), que é a alternativa B, correta. Passo 4: A alternativa A está errada porque a função nunca chega ao caso base que devolveria algum valor, então nenhum número é retornado. Passo 5: A alternativa C está errada porque a recursão não ordena a lista; a ordenação não decorre da ausência de condição de parada. Passo 6: A alternativa D está errada porque o problema justamente é que a função não termina, então ela não chega a produzir um resultado sem erro. Passo 7: A alternativa E está errada porque nenhum número é selecionado como resultado sem caso base, já que a execução não percorre a lista até um término. Passo 8: Minha resolução coincide com o gabarito oficial, B.
💡 Dica: Considere o que ocorre em uma chamada recursiva sem limite.
Alternativa por alternativa
Acredita que a recursão sempre devolve o primeiro elemento como valor padrão quando não há parada. Confunde o comportamento da recursão com o de uma busca linear que inicializa o máximo com o primeiro item.
Esse erro acontece se a função não tiver uma condição de parada.
Imagina que a recursão reorganiza os dados da lista, confundindo o funcionamento de uma função recursiva com o de um algoritmo de ordenação.
Entende que a função apenas para silenciosamente sem devolver nada. Não percebe que, sem caso base, a execução não termina e gera erro, em vez de terminar sem resultado.
Supõe que a função, ao final da lista, toma o último elemento como resultado. Confunde a parada natural de um laço iterativo com a ausência de condição de parada em uma recursão.
Por que engana: Achar que a função retorna um valor válido sem condição de parada, ignorando o risco de estouro de pilha.
Raio-X da questão
função recursiva
diagnostico
função recursiva · condição de parada em recursão
Revisar conceitos de recursão e condições de parada em funções.
Achar que a função retorna um valor válido sem condição de parada, ignorando o risco de estouro de pilha.
pensamento_critico
abstrato
Questões parecidas com resolução
- O que acontece quando uma função recursiva não possui uma condição de parada?
- Analise o algoritmo que procura o maior número em uma lista. O que deve ser alterado se o programa não retornar o maior…
- Em um código, você precisa percorrer uma lista para encontrar o maior número. Qual algoritmo utilizar?
- Quais cuidados devem ser tomados ao utilizar recursão em listas?
- Qual problema principal ocorre quando uma função recursiva modifica uma variável global ao percorrer uma lista L em vez…
- Projete em pseudocódigo uma função recursiva maximo(L) que recebe uma lista não vazia de inteiros e retorna o maior…
🔎 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
