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
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.
- A) Registrar cada estação somente após visitar todos os seus destinos ligados.
- B) Registrar os destinos da primeira ligação e deixar de explorar as demais ligações.
- C) Registrar a estação atual a cada nova ligação e visitar todos os destinos, mesmo repetidos.
- D) Registrar apenas a estação inicial antes de explorar todas as ligações do mapa.
- 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
- 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.
- 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.
- 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.
- 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.
- 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
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.
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.
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.
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.
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
recursão em grafos
diagnostico
conceito de recursão · estruturas de dados em grafos
Estude estruturas de dados em grafos e controle de visitas para evitar ciclos.
O aluno pode não perceber que o procedimento causa chamadas infinitas devido a ciclos no grafo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- — A proposta sobre a praça recebeu respostas dentro de outras respostas — observou a mediadora da plataforma de…
- — A rua da ponte precisa aparecer antes das demais no mapa de vistoria — observou a agente da Defesa Civil após uma…
- — O alerta saiu de Arumã, mas o enlace entre Caju e Ema parou de funcionar — avisou a operadora da central fluvial…
- Relatorio tecnico, 14 maio 2024 — O aplicativo de cobertura de atendimentos de um bairro divide o mapa em regioes ao…
- Pesquisadores acompanham há três anos o avanço de resíduos flutuantes em um trecho de rio urbano. Em uma simulação para…
- — O painel não pode tratar a mesma ficha duas vezes nem encerrar o atendimento por causa de uma pendência — explicou a…
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
