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

Projete um algoritmo generalizado que agrupe registros de uma coleção por uma chave extraída por uma função…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO06

Comparar diferentes casos particulares (instâncias) de um mesmo problema, identificando as semelhanças e diferenças entre eles, e criar um algoritmo para resolver todos, fazendo uso de variáveis (parâmetros) para permitir o tratamento de todos os casos de forma genérica.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um algoritmo generalizado que agrupe registros de uma coleção por uma chave extraída por uma função parâmetro 'chave(rec)'. Inclua assinatura, pseudocódigo e explique como o parâmetro torna o algoritmo reutilizável para diferentes formatos de dado.

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

Resposta esperada

Assinatura: function agrupar(colecao, chave): // colecao: lista de registros // chave: função que recebe um registro e retorna o valor de agrupamento Pseudocódigo: function agrupar(colecao, chave): mapa <- vazio dicionário for cada rec in colecao: k <- chave(rec) if k not in mapa: mapa[k] <- lista vazia append(rec, mapa[k]) return mapa Explicação: - A função 'chave' é o parâmetro que abstrai como extrair a propriedade usada para agrupar; isso torna o algoritmo reutilizável para registros heterogêneos (p.ex. alunos por cidade, transações por mês) sem alterar o corpo. - O uso de um dicionário (mapa) permite adicionar grupos dinamicamente e manter complexidade linear em relação ao tamanho da coleção, dependendo da operação de chave. - Para segurança em paralelo, a implementação pode trocar o mapa por estruturas concorrentes ou dividir a coleção em partições locais e depois mesclar mapas parciais, contanto que a mesclagem preserve a semântica de agrupamento.

Explicação

A solução apresentada permite que diferentes tipos de dados sejam agrupados de maneira flexível, utilizando a função 'chave' para definir como a agrupação deve ocorrer. O uso de um dicionário para armazenar os grupos garante eficiência na inserção e recuperação dos registros. Além disso, a proposta de adaptar a implementação para ambientes concorrentes demonstra uma preocupação com a escalabilidade e a performance do algoritmo.

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

algoritmo de agrupamento

📌 Objetivo

avaliacao

🧱 Pré-requisitos

noções de algoritmos · funções e parâmetros

📚 Reveja

Revisar conceitos de algoritmos e funções em programação.

⚠️ Erro mais comum

O aluno pode falhar ao não entender que a função 'chave' deve ser flexível o suficiente para lidar com diferentes tipos de dados, resultando em um algoritmo que não é reutilizável.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

criatividade

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Estratégias de solução de problemas - Generalizaçã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.