Projete um algoritmo generalizado que receba uma coleção de registros e uma função parâmetro 'valida(reg)' que…
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 receba uma coleção de registros e uma função parâmetro 'valida(reg)' que indique se um registro é aceitável; defina entradas, saídas, tipos de dado e explique como aplicar decomposição, generalização e reúso para construir a solução.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Assinatura: separar(collection: list<Record>, valida: Record->bool) -> (aceitos: list<Record>, rejeitados: list<Record]). Pseudocódigo: for r in collection: if valida(r) append r to aceitos else append r to rejeitados. Tipos: list<Record> e função Record->bool. Decomposição: separar iteração, validação e acúmulo em funções; Generalização: passar valida como parâmetro para aceitar critérios distintos; Reúso: implementar validações específicas (ex.: valida_id, valida_data) e reaproveitar a função 'separar' para várias coleções e políticas.
Explicação
A solução proposta organiza o problema em uma função clara que separa registros com base em critérios definidos, permitindo fácil adaptação a diferentes situações. A decomposição em funções menores facilita a manutenção e a legibilidade do código, enquanto a generalização e o reúso promovem a flexibilidade e a eficiência, permitindo que a mesma lógica seja aplicada a diversas coleções e regras de validação. Isso resulta em um algoritmo eficiente e modular, que pode ser facilmente expandido ou modificado conforme necessário.
Raio-X da questão
algoritmos e validação
avaliacao
noções de algoritmos · funções em programação
Revisar conceitos de algoritmos e funções em programação.
O aluno pode confundir a função de validação com a lógica de processamento dos registros, não separando claramente as responsabilidades.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Na cantina da escola, Ana informa o lanche desejado, a quantidade e se vai pagar em dinheiro ou cartão. A atendente…
- Em um jogo criado pela turma, a pontuação de cada equipe é calculada multiplicando a quantidade de desafios concluídos…
- Em uma exposição, um painel registrou as cores dos crachás lidos na entrada. Lista A: azul, verde, azul, amarelo. Lista…
- Em uma cozinha, duas receitas foram preparadas em horários diferentes. Receita 1: uma torta de legumes começou a assar…
- Por que uma cozinha solidária pode ter alimentos guardados e, ainda assim, não conseguir montar todas as cestas…
- Moradores acompanham, pelo celular, um sistema de irrigação instalado em canteiros de uma praça. A cada manhã, dois…
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
