GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF08CO03Difícil⏱ medio

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

Habilidade BNCC EF08CO03

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.

  1. A) Reverter a lista e copiar apenas os nomes que estiverem no final.
  2. B) Ordenar a lista e eliminar os nomes que aparecerem depois da primeira posicao.
  3. C) Eliminar da lista todos os nomes que aparecam mais de uma vez.
  4. D) Separar a lista em dois grupos e juntar depois os nomes repetidos com os novos.
  5. 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

  1. 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.
  2. 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).
  3. A lista final resultante é: Luiza, Bruno, Ana, Carla, Diego, Elisa. Ela preserva a ordem de chegada e cada nome aparece só uma vez.
  4. 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.
  5. 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

A Erradaerro: Interpretação

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.

B Erradaerro: Conceituala que mais engana

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.

C Erradaerro: Interpretação

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.

D Erradaerro: Procedimental

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.

E Correta

Esse procedimento remove repeticoes sem alterar a ordem da primeira aparicao, exatamente como pede o texto-base.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura medio
Discriminação alto
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 consolidacao
🎯 Conceito central

eliminação de repetições mantendo ordem

📌 Objetivo

diagnostico

🧱 Pré-requisitos

listas e estruturas de dados · controle de fluxo e condições

📚 Reveja

estude estruturas de dados para remoção de duplicatas mantendo ordem

⚠️ Erro mais comum

Escolher métodos que alteram a ordem original ou removem todos os repetidos erradamente.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Programação - Algoritmos clássicos

🔎 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.