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
- 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 e uma função parâmetro 'valida(reg)' que indique…
- Projete um algoritmo generalizado que receba uma coleção heterogênea de registros e um mapa de normalização (que indica…
- Projete a assinatura de um algoritmo de ordenação generalizado que permita reutilizar o mesmo código para diferentes…
- Descreva com precisão o algoritmo e as estruturas de dados (registros, hash ou listas) para um programa que mescla…
- Escreva em pseudocódigo um algoritmo que, dada uma lista heterogênea de dados (inteiros, reais, textos), agrupe os…
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
