No terminal de uma biblioteca comunitaria, o cadastro dos visitantes ficou com repeticões porque algumas…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar algoritmos clássicos de manipulação sobre listas.
Fonte: Base Nacional Comum Curricular (MEC).Questão
No terminal de uma biblioteca comunitaria, o cadastro dos visitantes ficou com repeticões porque algumas pessoas confirmaram a mesma reserva mais de uma vez quando a internet caiu. A equipe anotou a lista na ordem em que as mensagens chegaram: Luiza, Bruno, Ana, Luiza, Carla, Bruno, Diego, Ana, Elisa. Para evitar dois chamados para a mesma pessoa, o sistema precisa gerar uma nova lista com cada nome apenas uma vez, mantendo a primeira aparicao de cada um. Assim, quem entrou antes continua na frente, e os repetidos nao voltam ao final. A programadora explicou que nao basta ordenar os nomes nem apagar todos os que aparecem mais de uma vez, porque isso mudaria a ordem de atendimento ou retiraria nomes validos. O procedimento escolhido deve percorrer a lista original, conferir se o nome ja foi incluido e, so entao, inserir os novos nomes na lista final. Considere a situacao descrita e identifique o procedimento que produz corretamente a lista final de atendimento.
- A) Reverter a lista e copiar apenas os nomes que estiverem no final.
- B) Ordenar a lista e eliminar os nomes que aparecerem depois da primeira posicao.
- C) Eliminar da lista todos os nomes que aparecam mais de uma vez.
- D) Separar a lista em dois grupos e juntar depois os nomes repetidos com os novos.
- E) Percorrer a lista e adicionar cada nome somente se ele ainda nao tiver sido incluido.
✅ Resposta correta: alternativa E
Resolução passo a passo
- O objetivo é gerar uma lista em que cada nome aparece uma única vez, mantendo a ordem da primeira aparição. A lista original é: Luiza, Bruno, Ana, Luiza, Carla, Bruno, Diego, Ana, Elisa.
- Percorrendo a lista do início ao fim e conferindo, a cada nome, se ele já foi incluido na lista final, obtemos: Luiza (entra, pois ainda não está na lista final), Bruno (entra), Ana (entra), Luiza (já incluída, ignorada), Carla (entra), Bruno (já incluído, ignorado), Diego (entra), Ana (já incluída, ignorada), Elisa (entra).
- A lista final resultante é: Luiza, Bruno, Ana, Carla, Diego, Elisa. Ela preserva a ordem de chegada e cada nome aparece só uma vez.
- Por que a alternativa E está correta: ela descreve exatamente esse procedimento, percorrer a lista original e incluir um nome somente se ele ainda não foi incluído.
- Por que as outras estão erradas: A inverte a ordem e copia apenas os nomes do final, o que perderia nomes válidos e mudaria a ordem de atendimento. B ordena a lista, o que a programadora descartou por mudar a ordem de atendimento. C apaga todos os nomes repetidos, retirando também Luiza, Bruno e Ana, que são nomes válidos. D separa os nomes em grupos e os junta depois, o que não garante a primeira aparição nem a ordem de chegada.
💡 Dica: Identifique o método que mantém a ordem e elimina repetições corretamente.
Alternativa por alternativa
O aluno acredita que o último registro de cada pessoa é o que deve valer, ou que basta inverter a lista para reaproveitar a ordem, ignorando que a ordem de chegada deve ser preservada e que a primeira aparição é a relevante.
O aluno supõe que organizar os nomes em ordem alfabética resolve a duplicidade, esquecendo que o enunciado proíbe alterar a ordem de atendimento e que eliminar tudo após a primeira posição descartaria nomes válidos.
Por que engana: Escolher métodos que alteram a ordem original ou removem todos os repetidos erradamente.
O aluno entende que nome repetido é um erro a ser removido por completo, sem perceber que apenas as cópias extras devem sair e que a primeira ocorrência de cada nome precisa ser mantida.
O aluno imagina que dividir a lista em grupos e depois reunir os resultados mantém naturalmente a ordem de chegada e a primeira aparição, sem verificar essa correspondência passo a passo.
Esse procedimento remove repeticoes sem alterar a ordem da primeira aparicao, exatamente como pede o texto-base.
Raio-X da questão
eliminação de repetições mantendo ordem
diagnostico
listas e estruturas de dados · controle de fluxo e condições
estude estruturas de dados para remoção de duplicatas mantendo ordem
Escolher métodos que alteram a ordem original ou removem todos os repetidos erradamente.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- — Se a pessoa com senha 12 desistir, a gente precisa tirar essa linha e chamar a proxima sem confundir os pedidos —…
- — De novo apareceu duas vezes o mesmo número! — reclamou a técnica que cuida do sistema de bicicletas compartilhadas da…
- Na escola, um atendente precisa organizar a fila de atendimento de alunos com um programa simples. Considerando que a…
- — Quem fica com a chave do galpão de doações neste sábado? — perguntou Júlio no grupo do bairro. Para evitar confusão, o…
- Projete um algoritmo em pseudocódigo que receba uma lista de nomes de alunos (entrada de dados) e retorne uma lista de…
- Em uma escola, você precisa criar um programa que receba uma lista de nomes de estudantes e produza uma lista sem…
🔎 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
