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
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
algoritmo de agrupamento
avaliacao
noções de algoritmos · funções e parâmetros
Revisar conceitos de algoritmos e funções em programação.
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.
ciencia_tecnologia
criatividade
abstrato
Questões parecidas com resolução
- Uma casa de cultura organiza duas mostras e quer usar o mesmo sistema de bilheteria. Na Mostra A, o ingresso inteiro…
- Em um aplicativo de lanches, a pessoa escolhe os itens do pedido, informa quantidades, endereço de entrega e forma de…
- No fim da tarde, a cozinha solidária do bairro recebe pedidos por mensagem e imprime um bilhete para cada entrega. O…
- No terminal de um abrigo de animais, os voluntários passaram a registrar a chegada de cães e gatos em um sistema…
- Na entrada de um clube de leitura, um painel eletrônico libera o acesso às oficinas com base em duas informações: a…
- — "No aplicativo, o usuario consegue fazer duas coisas principais", explicou a atendente ao descrever o servico digital…
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
