GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO03Difícil⏱ longo

Projete um algoritmo em pseudocódigo que detecte e remova registros duplicados em uma matriz de dados…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO03

Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um algoritmo em pseudocódigo que detecte e remova registros duplicados em uma matriz de dados escolares (cada linha é um registro). Descreva como testar o algoritmo para garantir correção e quais estruturas de dados escolher para eficiência.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Resposta modelo (pseudocódigo e justificativa): 1) Escolha de estruturas: usar um conjunto (set) para detectar chaves vistas e uma lista/matriz de saída para registros únicos; o set fornece busca O(1) média. 2) Definir chave única por registro (ex.: concatenar CPF ou matrícula; se não houver, concatenar campos relevantes). 3) Pseudocódigo: criar set vistos vazio criar lista resultado vazia para cada linha r em matriz: chave <- gerarChave(r) se chave não está em vistos: inserir chave em vistos adicionar r a resultado fim-se fim-para retornar resultado 4) Remoção in-place (opcional): iterar e sobrescrever linhas únicas, ajustar tamanho final. 5) Testes para garantia: - caso sem duplicatas; caso todas duplicadas; duplicatas consecutivas e intercaladas; registros com campos iguais exceto ordem. - testar com dados pequenos e grandes; medir tempo e uso de memória. 6) Complexidade e trade-offs: tempo O(n) vezes custo de gerarChave; memória adicional O(n) para o set. Se memória for limitada, usar ordenação estável da matriz e remover duplicatas consecutivas (custo O(n log n) e menos memória). 7) Critérios de aceitação: nenhum registro duplicado na saída, ordem preservada se exigido, e testes automatizados cobrindo casos limites.

Explicação

A solução proposta utiliza um conjunto para identificar rapidamente duplicatas, garantindo eficiência na busca e inserção. A abordagem de gerar uma chave única para cada registro permite a comparação direta, enquanto a lista de resultados mantém os registros únicos. Os testes abrangentes garantem que o algoritmo funcione em diferentes cenários, assegurando a robustez e a correção do método.

Raio-X da questão

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

algoritmo de remoção de duplicados

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estrutura de dados · pseudocódigo

📚 Reveja

Revisar conceitos de estruturas de dados e algoritmos.

⚠️ Erro mais comum

O aluno pode falhar ao não considerar todos os casos de duplicidade, como registros com espaços em branco ou diferenças de capitalização.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Programação - Projetos com programaçã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.