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

Cerca de 300 sacos de lixo foram recolhidos em um mutirão de limpeza na orla. Para registrar a coleta, cada…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF08CO02

Criar soluções de problemas para os quais seja adequado o uso de listas para descrever suas informações e automatizá-las usando uma linguagem de programação, empregando ou não a recursão como uma técnica de resolver o problema.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Cerca de 300 sacos de lixo foram recolhidos em um mutirão de limpeza na orla. Para registrar a coleta, cada saco recebeu um adesivo com um código curto (como “B17”, “C04”). Voluntários usaram um aplicativo simples que funciona offline e salva os códigos lidos ao longo do dia. Na pressa, alguns sacos foram escaneados duas vezes por pessoas diferentes. No fim, a coordenação precisa gerar um relatório com (1) a lista de códigos de sacos recolhidos sem repetição e (2) o total de sacos distintos. Além disso, a lista deve manter a ordem da primeira vez em que cada código apareceu, porque essa ordem ajuda a revisar o trajeto feito na coleta. O grupo decidiu resolver isso com uma lista e um pequeno programa. Com base no texto, identifique a lógica de programa que melhor atende ao relatório: evitar duplicidades, manter a ordem do primeiro registro e calcular o total de sacos distintos.

  1. A) Guardar uma lista por voluntário e, no final, somar os tamanhos das listas para obter o total distinto.
  2. B) Verificar se o código já está na lista; se não estiver, adicionar; ao final, usar o tamanho da lista.
  3. C) Adicionar todo código lido na lista e usar o tamanho da lista como total ao final.
  4. D) Adicionar o código e, se ele repetir, remover a ocorrência antiga e inserir o código no fim da lista.
  5. E) Ordenar a lista ao final e imprimir apenas os códigos que forem diferentes do item imediatamente anterior.

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. O relatório exige três coisas: não repetir códigos, manter a ordem da primeira aparição e informar quantos sacos distintos foram recolhidos. Passo 2: A alternativa B resolve as três. Para cada código lido, verifica-se se ele já está na lista. Se não estiver, ele é adicionado ao fim, o que preserva a ordem do primeiro registro. Ao final, o tamanho da lista é exatamente o total de sacos distintos. Passo 3: A alternativa A está errada porque cada voluntário tem sua própria lista, e o mesmo saco pode aparecer em listas de pessoas diferentes; somar os tamanhos contaria essas repetições mais de uma vez. Passo 4: A alternativa C está errada porque adiciona todas as leituras, inclusive as duplicadas, e o tamanho final contaria sacos repetidos. Passo 5: A alternativa D está errada porque, ao remover a ocorrência antiga e inserir o código no fim, o código passa a ter a posição da segunda leitura, quebrando a ordem da primeira aparição exigida pela coordenação. Passo 6: A alternativa E está errada porque ordenar a lista destrói a ordem do trajeto, e comparar apenas com o item imediatamente anterior não detecta repetições que não sejam consecutivas. Passo 7: Conclusão: a lógica correta é a de verificar a presença antes de adicionar, mantendo a lista na ordem de chegada e usando seu tamanho como total de sacos distintos. O gabarito oficial B está correto.

💡 Dica: Pense em como evitar duplicatas e manter a ordem ao adicionar códigos na lista.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

Acredita que separar as leituras por voluntário e somar os tamanhos das listas resolve o problema, sem perceber que o mesmo saco pode ter sido escaneado por pessoas diferentes. Assim, a duplicidade entre listas não é eliminada.

Por que engana: O aluno pode pensar que somar listas de voluntários dá o total correto, ignorando duplicatas.

B Correta

Garante um registro por código (sem repetição), preserva a ordem da primeira aparição e calcula o total por tamanho.

C Erradaerro: Interpretação

Interpreta que o relatório só precisa contar as leituras, ignorando que o enunciado diz que alguns sacos foram escaneados duas vezes e que a lista deve conter códigos sem repetição.

D Erradaerro: Procedimental

Entende que a remoção da ocorrência antiga e a reinserção no fim mantêm a ordem, mas isso faz o código assumir a posição da última leitura, e não a da primeira aparição exigida.

E Erradaerro: Procedimental

Imagina que ordenar a lista e comparar cada código apenas com o anterior elimina todas as duplicatas, esquecendo que a ordenação destrói a ordem do trajeto e que repetições não consecutivas passariam despercebidas.

Raio-X da questão

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

listas, duplicidade, ordem, contagem

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de dados básicas · controle de fluxo

📚 Reveja

Estude estruturas de dados para evitar duplicatas e manter ordem de inserção.

⚠️ Erro mais comum

O aluno pode pensar que somar listas de voluntários dá o total correto, ignorando duplicatas.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

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.