Por que uma mudança na prioridade de ambulâncias pode produzir conflitos em cruzamentos diferentes? Para…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
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
Por que uma mudança na prioridade de ambulâncias pode produzir conflitos em cruzamentos diferentes? Para examinar esse risco, a central de mobilidade de uma cidade registrou os roteiros de decisão dos semáforos em uma linguagem padronizada. Cada roteiro informa condições, como a aproximação de veículos de emergência, e ações, como interromper ou manter um sinal. O protótipo Verificador não recebe dados de veículos em circulação. Ele recebe os próprios roteiros e produz um novo roteiro capaz de simular combinações de sinais em vários cruzamentos, apontando situações contraditórias. Após a simulação, técnicos analisam os avisos antes de atualizar o controle do trânsito. Analise o funcionamento do protótipo e identifique a ação que evidencia a generalização própria da metaprogramação.
- A) Tratar alertas emitidos como entrada para ordenar mensagens por horário.
- B) Tratar um roteiro aprovado como entrada para alterar manualmente o código do semáforo.
- C) Tratar cada cruzamento como entrada para armazenar seu histórico de passagem.
- D) Tratar o conjunto de roteiros como entrada para gerar um algoritmo que testa suas combinações.
- E) Tratar dados de circulação como entrada para executar um roteiro já definido.
✅ Resposta correta: alternativa D
Resolução passo a passo
- A pergunta pede a ação que mostra a generalização própria da metaprogramação, ou seja, um programa que recebe outros programas (ou roteiros) como dados e produz ou manipula um novo programa. Passo 2: No protótipo Verificador, a entrada são os próprios roteiros de decisão dos semáforos, e a saída é um novo roteiro que simula combinações de sinais em vários cruzamentos. Passo 3: Isso é a generalização típica da metaprogramação, pois o sistema trata código (roteiros) como matéria-prima e gera outro procedimento a partir dele. Passo 4: A alternativa A está errada, pois ordenar mensagens por horário é apenas processamento de dados comum, sem gerar nenhum programa. Passo 5: A alternativa B está errada, pois alterar manualmente o código do semáforo é uma ação humana posterior e não faz parte do funcionamento do protótipo. Passo 6: A alternativa C está errada, pois armazenar histórico de passagem trata cada cruzamento como simples registro de dados, sem gerar novos roteiros. Passo 7: A alternativa E está errada, pois executar um roteiro já definido com dados de circulação é execução comum de programa, justamente o que o protótipo não faz, já que não recebe dados de veículos. Passo 8: Logo, a alternativa correta é a D, que descreve o tratamento do conjunto de roteiros como entrada para gerar um algoritmo que testa combinações.
💡 Dica: Analise como o protótipo usa os roteiros para simular e detectar conflitos.
Alternativa por alternativa
O aluno pode ter entendido que qualquer processamento de saídas do sistema caracteriza metaprogramação, confundindo organização de dados com geração de programas.
O aluno pode ter associado metaprogramação a qualquer modificação do código do sistema, inclusive feita por pessoas, em vez de um programa que gera outro programa automaticamente.
O aluno pode ter focado em armazenar informações sobre cada cruzamento, achando que tratar entidades como dados já é generalização de programas, sem perceber que não há geração de nova lógica.
Correta. O protótipo recebe algoritmos representados por roteiros e produz outro algoritmo de simulação, caracterizando metaprogramação.
O aluno pode ter lido o protótipo como um sistema que executa roteiros sobre dados de tráfego, o que é o funcionamento comum de um programa, e não a geração de um novo roteiro, além de contradizer o enunciado que diz que o protótipo não recebe dados de veículos.
Raio-X da questão
metaprogramação e generalização
diagnostico
conceito de metaprogramação · simulação de sistemas
Estude o conceito de metaprogramação e sua aplicação em simulações.
Confundir metaprogramação com simples programação ou não entender a generalização do protótipo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- — Para revisar centenas de trilhas interativas sem alterar uma por uma, precisamos de outra estratégia — afirmou a…
- — A cada formulário novo, precisaríamos escrever testes do zero? — perguntou uma atendente do serviço digital de uma…
- Em um sistema de bilhetagem de ônibus, uma equipe desenvolveu a ferramenta Rastreador para investigar falhas no roteiro…
- Qual a principal estratégia de solução de problemas que envolve a generalização em programação?
- Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes trocavam…
- — A rua da ponte precisa aparecer antes das demais no mapa de vistoria — observou a agente da Defesa Civil após uma…
🔎 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
