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

Escreva em pseudocódigo um algoritmo que, dada uma matriz 'clientes' onde cada linha é um registro [id, nome…

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

Escreva em pseudocódigo um algoritmo que, dada uma matriz 'clientes' onde cada linha é um registro [id, nome, telefone], detecte registros duplicados usando nome normalizado (remover espaços e minúsculas) e telefone normalizado (apenas dígitos), e una duplicatas mantendo o menor id e combinando campos não vazios. Explique o raciocínio e a complexidade.

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

Resposta esperada

Função normalizaNome(s): retorna lower(trim espaços extras) e remove múltiplos espaços. Função normalizaTel(t): retorna apenas dígitos. Pseudocódigo: mapa = dicionário chave->registro para cada r em clientes: chave = (normalizaNome(r.nome), normalizaTel(r.telefone)) se chave não em mapa: mapa[chave] = r senão: existente = mapa[chave] existente.id = min(existente.id, r.id) se existente.nome vazio então existente.nome = r.nome se existente.telefone vazio então existente.telefone = r.telefone resultado = lista dos valores de mapa Complexidade: O(n) em tempo médio usando dicionário; O(n) espaço. Raciocínio: normalizar garante correspondência robusta; dicionário permite detecção e merge em única passagem. Tratar casos especiais: telefone ausente ou nomes homônimos requer regras adicionais (ex.: confirmação manual).

Explicação

A solução utiliza funções de normalização para garantir que nomes e telefones sejam comparáveis, evitando problemas com formatações diferentes. O uso de um dicionário permite que os registros sejam verificados e combinados em uma única passagem, otimizando o desempenho. A complexidade linear em relação ao número de registros é alcançada por meio da eficiência das operações de inserção e busca no dicionário.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
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

detecção de duplicatas

📌 Objetivo

avaliacao

🧱 Pré-requisitos

normalização de dados · estruturas de dados

📚 Reveja

Revisar conceitos de normalização de dados e estruturas de dados.

⚠️ Erro mais comum

O aluno pode confundir a normalização de nomes e telefones, não aplicando corretamente as regras de remoção de espaços e conversão para minúsculas.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

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.