GeraProva GeraProva Provas com IA para professores do Brasil
Computação1ª sérieBNCC EM13CO04Difícil⏱ medio

Considere um algoritmo que decide aceitar ou rejeitar itens conforme uma política configurável (ex.: regras de…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EM13CO04

Reconhecer o conceito de metaprogramação como uma forma de generalização na construção de programas, permitindo que algoritmos sejam entrada ou saída para outros algoritmos.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Considere um algoritmo que decide aceitar ou rejeitar itens conforme uma política configurável (ex.: regras de validação). Para generalizar o algoritmo a múltiplas políticas sem alterar seu corpo, qual técnica deve ser aplicada?

  1. A) Usar uma condição if para cada regra diretamente no algoritmo.
  2. B) Implementar as regras diretamente no corpo da função.
  3. C) Aplicar uma estrutura de controle fixa que não permite alterações.
  4. D) Receber a política como parâmetro função (callback) ou aplicar o padrão Strategy.
  5. E) Criar uma nova versão do algoritmo para cada política.

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. O enunciado pede uma forma de generalizar um algoritmo de aceitação ou rejeição de itens para várias políticas, sem precisar alterar seu corpo. Isso significa separar a parte que muda (a regra de validação) da parte que permanece igual (o fluxo do algoritmo).
  2. A solução é tornar a política um parâmetro. Ela pode ser passada como função (callback), que é uma função recebida como argumento e chamada pelo algoritmo, ou encapsulada em um objeto com interface comum, como no padrão Strategy. Assim, trocar a política não exige mexer no código do algoritmo, apenas fornecer outra implementação.
  3. A alternativa A está errada porque colocar um if para cada regra dentro do algoritmo obriga a modificar o corpo sempre que surgir uma nova política.
  4. A alternativa B está errada porque implementar as regras diretamente no corpo da função mistura lógica fixa com lógica variável, o que impede a generalização.
  5. A alternativa C está errada porque uma estrutura de controle fixa que não permite alterações é justamente o oposto da flexibilidade pedida.
  6. A alternativa E está errada porque criar uma nova versão do algoritmo para cada política duplica código e não generaliza nada.
  7. Portanto, a alternativa D é a correta, pois a injeção da política como parâmetro (callback) ou via Strategy é a técnica que permite múltiplas políticas sem alterar o corpo do algoritmo. O gabarito oficial está correto.

💡 Dica: Pense em como aplicar o princípio de design para permitir extensibilidade.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno acredita que basta acrescentar uma condição para cada regra dentro do próprio algoritmo, sem perceber que cada nova política exigiria alterar o corpo do código.

B Erradaerro: Conceituala que mais engana

O aluno imagina que deixar as regras escritas diretamente na função é uma forma organizada de implementar políticas, sem notar que isso prende o algoritmo a uma única política.

Por que engana: Escolher a alternativa que sugere implementar regras diretamente no corpo do algoritmo, ignorando a flexibilidade necessária para múltiplas políticas.

C Erradaerro: Interpretação

O aluno interpreta 'estrutura de controle' como algo rígido e confunde a ideia de estabilidade do código com a impossibilidade de configurá-lo, contrariando o objetivo de generalização.

D Correta

Passar a regra como função desacopla comportamento da lógica de iteração, permitindo trocar políticas sem modificar o algoritmo central.

E Erradaerro: Procedimental

O aluno entende que cada política deve gerar um algoritmo separado, o que resolve a diferença de regras, mas gera duplicação de código e não cumpre a exigência de generalização.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade dupla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

políticas de validação

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de controle · funções e parâmetros

📚 Reveja

Revisar técnicas de design de algoritmos e extensibilidade.

⚠️ Erro mais comum

Escolher a alternativa que sugere implementar regras diretamente no corpo do algoritmo, ignorando a flexibilidade necessária para múltiplas políticas.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 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.