Projete um algoritmo generalizado que receba uma coleção heterogênea de registros e um mapa de normalização…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete um algoritmo generalizado que receba uma coleção heterogênea de registros e um mapa de normalização (que indica como renomear e transformar campos) e retorne uma coleção padronizada. Inclua assinatura, pseudocódigo e explique como o parâmetro mapa permite reutilização para diferentes formatos de entrada.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Assinatura: normalize(registros: Collection<Record>, mapa: Map<String, (valor)->valor>, camposDestino: List<String>) -> Collection<Record> Pseudocódigo: function normalize(registros, mapa, camposDestino): resultado <- empty list for each r in registros: novo <- empty record for each campo in camposDestino: if mapa contém campo then regra <- mapa[campo] // regra: função ou especificação valorOrigem <- obterValorSeguindoRegra(r, regra) // busca por nome antigo e aplica transformação novo[campo] <- valorOrigem else novo[campo] <- null append(resultado, novo) return resultado Notas sobre mapa e reutilização: - O parâmetro 'mapa' associa cada campo de saída a uma descrição que pode incluir nome do campo de entrada e uma função de conversão; assim o mesmo algoritmo suporta formatos distintos apenas trocando o mapa. - A função obterValorSeguindoRegra deve tratar ausência de campo, tipos diferentes e aplicar conversões (ex.: string->número, unificação de formatos de data). - Complexidade: O algoritmo faz O(n * m) operações, onde n = |registros| e m = |camposDestino|; a transformação é linear por registro. - Benefícios: separa lógica de transformação do processamento; facilita testes, manutenção e extensão para novos formatos sem alterar o corpo do algoritmo.
Explicação
A solução apresentada define um algoritmo flexível que pode ser adaptado a diferentes formatos de entrada por meio do uso de um mapa de normalização, permitindo que o mesmo código funcione com diferentes conjuntos de dados. A estrutura modular do pseudocódigo facilita a manutenção e a extensão, possibilitando a inclusão de novas regras de transformação sem a necessidade de reescrever o algoritmo principal. Além disso, a complexidade do algoritmo é claramente explicada, demonstrando sua eficiência em relação ao tamanho dos dados de entrada.
Raio-X da questão
normalização de dados
avaliacao
algoritmos e pseudocódigo · normalização de dados
Revisar conceitos de algoritmos e estruturas de dados.
O aluno pode confundir a normalização de dados com a simples ordenação ou filtragem de registros, não aplicando as transformações corretas nos campos.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete um algoritmo generalizado que receba uma coleção de registros e uma função parâmetro 'valida(reg)' que indique…
- Desenvolva um algoritmo em pseudocódigo que receba um conjunto de registros de sensores heterogêneos (cada registro…
- Projete a assinatura de um algoritmo generalizado chamado normalizar que aplica min–max scaling a um conjunto de…
- Descreva um algoritmo generalizado (inclua assinatura e pseudocódigo) que receba duas coleções de registros e um…
- Projete um algoritmo generalizado que receba uma coleção de registros de alunos com notas em várias disciplinas e…
- Projete um algoritmo generalizado que agrupe registros de uma coleção por uma chave extraída por uma função parâmetro…
🔎 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
