Uma empresa de transporte tem vários programas para calcular trajetos de ônibus. Cada programa considera algo…
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
Uma empresa de transporte tem vários programas para calcular trajetos de ônibus. Cada programa considera algo diferente, como tempo de viagem, gasto de combustível ou número de paradas. Para testar esses programas, a equipe criou outro programa. Ele recebe cada programa de trajetos, adiciona uma parte que registra quanto tempo ele demora para funcionar e cria uma nova versão para teste. Assim, a equipe não precisa adicionar essa mesma parte manualmente em todos os programas. Explique por que o programa criado pela equipe é um exemplo de metaprogramação, como ele evita repetir uma tarefa e uma forma de verificar se as novas versões continuam funcionando corretamente.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
É metaprogramação porque um programa trabalha com outros programas: ele recebe um programa de trajetos, adiciona uma parte para registrar o tempo e cria uma nova versão. Ele evita repetição porque a mesma mudança é feita automaticamente em todos os programas de trajetos. Para verificar se funcionam corretamente, a equipe pode usar os mesmos dados de trajetos no programa original e na versão criada. Os dois devem indicar o mesmo trajeto e o mesmo custo; a nova versão deve apenas registrar também o tempo de funcionamento.
Explicação
A resposta deve reconhecer que há um programa que modifica outros programas, identificar que uma única regra é aplicada a vários casos e propor uma comparação entre a versão original e a versão criada.
Raio-X da questão
Metaprogramação
Reconhecer metaprogr
Conceito de programa e função · Testes e medição de desempenho
Generalização e reutilização de código
Confundir metaprogramação com apenas executar vários programas ou copiar manualmente o mesmo código.
Tecnologia e inovação
Pensamento crítico
Automação de testes
Questões parecidas com resolução
- Em um sistema de bilhetagem de ônibus, uma equipe desenvolveu a ferramenta Rastreador para investigar falhas no roteiro…
- Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes trocavam…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Em levantamento interno recente, 85% dos desenvolvedores de uma empresa de software relatou gasto excessivo de horas…
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
- Manutenção de sensores na linha de produção exige ajustes constantes de parâmetros e comportamentos. Inicialmente, a…
🔎 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
