Em pseudocódigo, qual deve ser o caso base de um algoritmo recursivo que conta elementos de uma lista L…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Aplicar a estratégia de decomposição para resolver problemas complexos, dividindo esse problema em partes menores, resolvendo-as e combinando suas soluções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em pseudocódigo, qual deve ser o caso base de um algoritmo recursivo que conta elementos de uma lista L (variável L) para evitar chamadas infinitas?
- A) Se L == [x] então retorne -1.
- B) Se L == [] então retorne 0.
- C) Se L == [1,2,3] então retorne 3.
- D) Se L == [0] então retorne 1.
- E) Se L == [] então retorne 1.
✅ Resposta correta: alternativa B
Resolução passo a passo
- Um algoritmo recursivo de contagem chama a si mesmo com a lista reduzida, por exemplo retirando um elemento a cada chamada. Para não gerar chamadas infinitas, ele precisa de um caso base, uma situação em que a resposta é conhecida diretamente, sem nova chamada. Passo 2: A lista vazia é o caso mais simples e o ponto natural de parada, pois não há elementos a contar. Logo, o caso base correto é: Se L == [] então retorne 0, que é a alternativa B. Passo 3: A alternativa A está errada porque uma lista com um elemento tem contagem 1, e retornar -1 não faz sentido para uma contagem. Passo 4: A alternativa C está errada porque apenas indica o resultado para uma lista específica com três elementos, não trata o caso mais simples que interrompe a recursão. Passo 5: A alternativa D está errada porque, embora retornar 1 para [0] seja uma contagem correta, esse caso ainda pode ser reduzido recursivamente e não é o caso base que garante a parada. Passo 6: A alternativa E está errada porque a contagem de uma lista vazia é 0, não 1. Conclusão: o caso base é a lista vazia retornando 0, pois é o único que é correto e o menor caso que encerra a recursão.
💡 Dica: Pense no que deve acontecer quando a lista estiver vazia.
Alternativa por alternativa
Acredita que o caso base pode retornar qualquer valor, inclusive negativo, sem perceber que a contagem de uma lista com um elemento deve ser 1.
Por que engana: O aluno pode confundir o caso base correto, escolhendo uma condição que não interrompe a recursão adequadamente.
O caso base verifica lista vazia e retorna 0, encerrando a recursão; cada chamada processa um elemento e depende desse término.
Confunde caso base com um exemplo concreto de lista de tamanho 3, achando que basta retornar o tamanho de uma lista qualquer para parar a recursão.
Acha que qualquer lista pequena cuja contagem é conhecida serve como caso base, sem perceber que as demais listas continuariam em recursão infinita.
Atribui valor 1 à lista vazia, possivelmente por confundir a ausência de elementos com a presença de um elemento ou por descuido na escolha do número.
Raio-X da questão
algoritmo recursivo
avaliacao
algoritmo recursivo · estrutura de listas
Revisar os conceitos de recursão e casos base em algoritmos.
O aluno pode confundir o caso base correto, escolhendo uma condição que não interrompe a recursão adequadamente.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Escreva em pseudocódigo um algoritmo recursivo count_pares(L) que recebe uma lista L de inteiros e retorna a quantidade…
- Em pseudocódigo, qual é o caso base adequado para um algoritmo recursivo que verifica se uma lista L é palíndroma (mesma…
- Ao criar uma função que utiliza recursão para somar todos os elementos de uma lista, qual é a base dessa função?
- Em pseudocódigo, ao implementar um algoritmo recursivo que percorre uma lista L processando exatamente um elemento por…
- Em uma função recursiva que processa uma lista, qual é o papel do caso base (base case) na definição da recursão?
- Projete em pseudocódigo uma função recursiva que verifica se uma lista de inteiros L está estritamente crescente (cada…
🔎 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
