— A proposta sobre a praça recebeu respostas dentro de outras respostas — observou a mediadora da plataforma…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
— A proposta sobre a praça recebeu respostas dentro de outras respostas — observou a mediadora da plataforma de participação cidadã. Para localizar sugestões repetidas, o sistema deve ler cada mensagem e também todas as respostas ligadas a ela. Como uma resposta pode receber novas respostas, não se sabe antecipadamente quantos níveis haverá em cada conversa. A programadora criou o procedimento verificar(mensagem). Primeiro, ele registra o texto da mensagem recebida. Depois, para cada resposta ligada a ela, executa novamente verificar(resposta). Assim, o mesmo procedimento é usado tanto nas mensagens iniciais quanto nas respostas em qualquer nível da conversa. Analise o procedimento descrito e identifique a regra necessária para que ele percorra todas as conversas sem continuar executando chamadas desnecessárias.
- A) Definir que, ao encontrar uma resposta, a função ignore as respostas ligadas a ela.
- B) Definir que, após cada resposta, a função retorne à primeira mensagem da conversa.
- C) Definir que, após registrar uma mensagem, a função apague as respostas já examinadas.
- D) Definir que, sem respostas ligadas, a função conclua aquele caminho de leitura.
- E) Definir que, para cada resposta, a função execute duas vezes a mesma leitura.
✅ Resposta correta: alternativa D
Resolução passo a passo
- O procedimento verificar(mensagem) é recursivo, pois chama a si mesmo para cada resposta ligada à mensagem. Para que uma recursão termine, é preciso uma condição de parada, isto é, um caso em que a função não faça mais chamadas.
- No texto, a função registra a mensagem e depois, para cada resposta, executa verificar(resposta). Se uma mensagem ou resposta não tiver nenhuma resposta ligada, o laço não executa nenhuma chamada, mas a função também não tem uma regra explícita que indique que aquele caminho foi concluído.
- A regra que resolve isso é a alternativa D: sem respostas ligadas, a função conclui aquele caminho de leitura. Essa é a base da recursão. Ao chegar a um nó sem filhos, a execução volta ao nível anterior e continua com as demais respostas, sem chamadas desnecessárias.
- Por que as outras estão erradas: A) ignorar as respostas impediria justamente a leitura de todos os níveis da conversa, que é o objetivo do sistema. B) voltar à primeira mensagem geraria repetição e possivelmente laços infinitos, sem relação com o término do percurso. C) apagar as respostas examinadas destruiria os dados que o sistema precisa para localizar sugestões repetidas. E) executar a mesma leitura duas vezes para cada resposta aumenta as chamadas desnecessárias, o oposto do que a questão pede.
- Conclusão: a letra D é a correta e coincide com o gabarito oficial.
💡 Dica: Analise o funcionamento da recursão e a condição de parada do procedimento.
Alternativa por alternativa
O aluno acredita que ignorar as respostas ligadas acelera o procedimento, sem perceber que isso deixaria de ler os níveis mais profundos da conversa.
O aluno imagina que voltar à primeira mensagem após cada resposta organiza a leitura, sem perceber que isso cria repetições e não define quando o percurso termina.
O aluno confunde o controle de execução com a manutenção dos dados, achando que apagar respostas já examinadas evita chamadas, quando na verdade elimina informações necessárias para localizar repetições.
Correta. A ausência de respostas funciona como caso-base: encerra a chamada atual, após o registro da mensagem, sem impedir a leitura de outros caminhos.
O aluno pensa que repetir a leitura reforça a verificação, sem perceber que isso gera chamadas duplicadas e não resolve a condição de parada da recursão.
Raio-X da questão
recursão e condição de parada
diagnostico
conceito de recursão · condição de parada em algoritmos
Estude o conceito de recursão e a importância da condição de parada em algoritmos recursivos.
O aluno pode esquecer de incluir uma condição de parada, causando chamadas infinitas ou desnecessárias.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Pesquisadores acompanham a qualidade da água em estações de um rio e precisam automatizar a leitura dos sensores. No…
- — O painel não pode tratar a mesma ficha duas vezes nem encerrar o atendimento por causa de uma pendência — explicou a…
- — Tem audioguia disponível? — perguntou um visitante na entrada de uma mostra interativa. A equipe tem 12 aparelhos de…
- — Hoje a lista de entregas mudou de novo — reclamou Davi, que ajuda a associação do bairro a distribuir kits de higiene…
- — O alerta de cheia chegou com palavras fora de ordem no tablet! — avisou a agente da defesa civil. Para enviar a…
- Quando o rio se aproxima das casas, a Defesa Civil de um município usa um programa para avisar os moradores pelo…
Todas as questões de Programação - Programação com listas e recursão
🔎 Resolver outra questão
Cole o enunciado e veja a resolução passo a passo, a alternativa correta e por que as outras estão erradas.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
