Uma equipe está programando um aplicativo de visita guiada em um museu. Cada sala aponta, por setas, para as…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar soluções de problemas para os quais seja adequado o uso de árvores e grafos para descrever suas informações e automatizá-las usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Uma equipe está programando um aplicativo de visita guiada em um museu. Cada sala aponta, por setas, para as próximas salas sugeridas. O roteiro atual começa na sala A e tem estas setas: A ? B, A ? F, B ? D, B ? E, F ? G Para simplificar o botão "voltar", o programador pensou em guardar, para cada sala, apenas um campo chamado pai (a sala anterior no roteiro). Depois dos testes, a equipe quer criar um atalho: uma nova seta E ? G. Que mudança no armazenamento das conexões é necessária para que o aplicativo represente corretamente o novo roteiro?
- A) Passa a ser necessário remover a sala inicial do registro, pois ao criar um atalho o diagrama deixa de ter uma raiz definida.
- B) Passa a ser necessário transformar as setas em ligações sem direção, pois árvores não podem ser representadas com setas.
- C) Passa a ser necessário manter um único campo pai por sala, pois nenhuma sala fica com mais de um caminho de chegada.
- D) Passa a ser necessário guardar uma lista de pais por sala, pois alguma sala poderá ter mais de um caminho de chegada.
- E) Passa a ser necessário incluir coordenadas (x,y) para cada sala, pois o diagrama só funciona como árvore quando as posições são conhecidas.
✅ Resposta correta: alternativa D
Resolução passo a passo
- Veja as conexões atuais. A aponta para B e F; B aponta para D e E; F aponta para G. Cada sala, exceto A, recebe exatamente uma seta de chegada: B vem de A, F vem de A, D vem de B, E vem de B e G vem de F. Por isso, hoje o roteiro é uma árvore, e um único campo pai por sala basta. Passo 2: Ao criar a seta E -> G, a sala G passa a receber duas setas: uma de F e outra de E. Assim, G tem dois caminhos de chegada (A-F-G e A-B-E-G). Passo 3: O campo pai guarda apenas uma sala anterior por sala, então não consegue representar as duas origens de G. Passo 4: A solução é guardar, para cada sala, uma lista de pais (todas as salas que apontam para ela). Assim G terá a lista [F, E], e o botão voltar poderá oferecer os dois caminhos. Passo 5: Por que as outras estão erradas: A) a sala A continua sendo a raiz, pois não recebe nenhuma seta, então não é preciso removê-la. B) as setas indicam a ordem do roteiro e precisam manter a direção; o problema não é o sentido das setas. C) um único pai por sala é justamente o que deixa de funcionar, porque G agora tem dois pais. E) a posição das salas no mapa não altera a estrutura de conexões, que é o que importa para o armazenamento.
💡 Dica: Verifique se a nova seta faz uma sala receber conexões de chegada de mais de uma sala.
Alternativa por alternativa
O aluno acha que a criação de um atalho torna a sala inicial um problema, como se a raiz precisasse ser eliminada para o diagrama continuar consistente. Na verdade, A continua sem setas de entrada e segue como raiz.
O aluno acredita que, por o diagrama conter setas, ele não pode ser representado como árvore e deveria virar um grafo sem direção. Esse raciocínio ignora que a direção do roteiro é necessária para o botão voltar e que o problema real é a sala G com dois pais.
O aluno lê a seta E -> G sem perceber que ela cria uma segunda seta de chegada em G, e conclui que cada sala continua tendo um só caminho de chegada. Ele não verificou que G passa a ter dois caminhos.
Por que engana: Tratar a estrutura como uma árvore e supor que cada sala pode ter apenas um pai, ignorando que a nova seta cria uma segunda conexão de chegada para G.
Com a nova seta, G pode ser alcançada a partir de F e de E; como G passa a ter dois pais, é preciso guardar uma lista de pais por sala.
O aluno confunde a posição visual das salas em um desenho com a estrutura de conexões do roteiro, e acha que coordenadas são necessárias para representar o diagrama. As ligações entre salas já bastam para definir o grafo.
Raio-X da questão
Representação de conexões em grafos
avaliacao
Estruturas de dados em grafos · Árvores e relações de parentesco
Revise a diferença entre árvores e grafos com múltiplos caminhos de chegada.
Tratar a estrutura como uma árvore e supor que cada sala pode ter apenas um pai, ignorando que a nova seta cria uma segunda conexão de chegada para G.
ciencia_tecnologia
tomada_decisao
cotidiano
Questões parecidas com resolução
- — Se eu voltar pelo mesmo corredor, chego de novo na entrada? — perguntou uma visitante ao testar o aplicativo de um…
- No aplicativo de trilhas de um parque de preservacao, cada abrigo de descanso aparece como um ponto, e cada caminho…
- "Se um corredor ficar bloqueado, a gente precisa ter uma volta sem se perder", explicou a monitora de um parque ao…
- Em um jogo, cada sala é representada por um ponto. Os corredores ligam as salas, e uma sala pode ter vários corredores…
- No painel de um aplicativo de mobilidade, a equipe de desenvolvimento registrou os pontos de aluguel de bicicletas da…
- Uma equipe de estudantes está modelando, como um grafo dirigido, as conexões entre estações de bicicletas de uma cidade…
Todas as questões de Programação - Programação usando grafos e árvores
🔎 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
