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
- Projete um algoritmo generalizado que receba uma coleção de registros de alunos com notas em várias disciplinas e…
- Projete um algoritmo em pseudocódigo que receba uma lista de registros de alunos (campos: nome, idade, nota) como dado…
- Projete um algoritmo generalizado que agrupe registros de uma coleção por uma chave extraída por uma função parâmetro…
- Projete um algoritmo generalizado que receba uma coleção heterogênea de registros e um mapa de normalização (que indica…
- Projete a decomposição de alto nível de um algoritmo que integra dois conjuntos de dados escolares (registros de…
- Ao decompor um algoritmo que valida vários tipos de entrada, que subtarefa promove generalização e reúso de código por…
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
