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
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
detecção de duplicatas
avaliacao
normalização de dados · estruturas de dados
Revisar conceitos de normalização de dados e estruturas de dados.
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.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Descreva um algoritmo em pseudocódigo que receba uma matriz de registros 'clientes' (linhas = grupos, colunas =…
- Projete um algoritmo em pseudocódigo que detecte e remova registros duplicados em uma matriz de dados escolares (cada…
- Proponha um plano de decomposição e um esboço de pseudocódigo para automatizar a detecção de entradas duplicadas em uma…
- Desenvolva um algoritmo em pseudocódigo que, dada uma matriz 'agenda' de registros [dia, hora, descricao], remova…
- Recebe-se uma matriz M (m×n) de registros de alunos (nome, nota). Descreva um algoritmo em pseudocódigo para detectar e…
- Projete um algoritmo em pseudocódigo que remova duplicatas de uma lista de registros usando uma tabela hash; descreva a…
🔎 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
