GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF08CO01Média⏱ medio

Pesquisadores acompanham a qualidade da água em estações de um rio e precisam automatizar a leitura dos…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF08CO01

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

Pesquisadores acompanham a qualidade da água em estações de um rio e precisam automatizar a leitura dos sensores. No mapa simplificado, a estação A se liga a B e C; B se liga a D; C se liga a D; e D se liga novamente a B. O programa deve exibir cada estação uma única vez. Foi proposto o procedimento abaixo: visitar(estação) exibir estação para cada ligação que sai da estação visitar(estação de destino) Ao executar o procedimento a partir de A, as chamadas entre algumas estações podem continuar sem encerrar a varredura. Analise o mapa e o procedimento e identifique a alteração que permite concluir a varredura sem repetir chamadas indefinidamente.

  1. A) Registrar cada estação somente após visitar todos os seus destinos ligados.
  2. B) Registrar os destinos da primeira ligação e deixar de explorar as demais ligações.
  3. C) Registrar a estação atual a cada nova ligação e visitar todos os destinos, mesmo repetidos.
  4. D) Registrar apenas a estação inicial antes de explorar todas as ligações do mapa.
  5. E) Registrar cada estação antes de explorar ligações e visitar somente destinos sem registro.

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. Identifique o problema no procedimento. Partindo de A, o procedimento visita B, depois D, depois volta a B (pois D se liga a B), e B novamente chama D, e assim por diante. Como nenhuma estação é marcada como já visitada, as chamadas entre B e D nunca terminam.
  2. Encontre a alteração necessária. Para encerrar a varredura, é preciso lembrar quais estações já foram registradas e não visitá-las de novo. Isso exige marcar a estação como registrada antes de explorar suas ligações, e só chamar visitar para destinos que ainda não foram marcados.
  3. Teste a alternativa E. Ao marcar A, visitamos B (marcado), depois D (marcado); ao chegar de novo em B, ele já está marcado e a chamada não ocorre. Depois visitamos C, cujo destino D já está marcado. A varredura termina exibindo A, B, D, C, cada estação uma única vez. Logo, E está correta e coincide com o gabarito.
  4. Por que as outras estão erradas. A: registrar após visitar os destinos não impede a recursão entre B e D, pois a marcação ocorre tarde demais. B: explorar só a primeira ligação deixa C sem ser visitada, o que quebra a exigência de exibir todas as estações. C: visitar destinos repetidos mantém o ciclo entre B e D, então a varredura não termina. D: registrar só a estação inicial não impede que B e D sejam visitados indefinidamente, pois B e D nunca são marcados.
  5. Conclusão. A chave é combinar marcação antes da exploração com verificação de estações já visitadas, o que garante término e exibição única de cada estação.

💡 Dica: Analise o grafo e identifique como evitar ciclos na visitação.

Alternativa por alternativa

A Erradaerro: Conceitual

Acredita que a ordem de registro, feito após visitar os destinos, já resolve o problema. Não percebe que a recursão entre B e D continua antes de qualquer registro acontecer.

B Erradaerro: Procedimental

Imagina que reduzir a quantidade de ligações exploradas elimina repetições. Ignora que, ao parar nas primeiras ligações, a estação C deixa de ser exibida, violando a exigência do programa.

C Erradaerro: Interpretação

Lê a exigência de exibir cada estação uma única vez, mas acha que visitar destinos já repetidos não causa problema. Não percebe que é justamente essa repetição de chamadas que faz a varredura nunca terminar.

D Erradaerro: Conceitual

Supõe que registrar apenas a estação inicial basta para controlar a varredura. Não nota que B e D nunca são registrados, então o ciclo entre eles continua sem controle.

E Correta

Ao marcar B antes das novas chamadas, D reconhecerá que B já foi visitada. Isso impede o retorno recursivo ao ciclo e mantém a varredura.

Raio-X da questão

Dificuldade Média
Bloom Analisar
Leitura medio
Discriminação medio
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 progressao
🎯 Conceito central

recursão em grafos

📌 Objetivo

diagnostico

🧱 Pré-requisitos

conceito de recursão · estruturas de dados em grafos

📚 Reveja

Estude estruturas de dados em grafos e controle de visitas para evitar ciclos.

⚠️ Erro mais comum

O aluno pode não perceber que o procedimento causa chamadas infinitas devido a ciclos no grafo.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Programação - Programação com listas e recursão

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.