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

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

Habilidade BNCC EF15CO02

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

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

normalização de dados

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos e pseudocódigo · normalização de dados

📚 Reveja

Revisar conceitos de algoritmos e estruturas de dados.

⚠️ Erro mais comum

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.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Algoritmos

🔎 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.