Por que a escala de voluntários de um evento muda tanto de um ano para outro? Em um festival comunitário, a…
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 a escala de voluntários de um evento muda tanto de um ano para outro? Em um festival comunitário, a coordenação adotou um sistema em que as regras da escala são escritas em um arquivo de texto simples, com frases como: “se a pessoa marcou ‘palco’, evitar colocá-la na ‘bilheteria’” e “depois de 2 turnos seguidos, inserir 1 turno de descanso”. Um módulo chamado Montador lê esse arquivo e gera automaticamente um trecho de código que vira uma função “montarEscala()”, usada pelo aplicativo no celular para produzir a escala final. Quando o arquivo de regras é alterado, o Montador é executado novamente e cria uma nova versão da função, sem que alguém reescreva o aplicativo inteiro. Outro módulo apenas executa “montarEscala()” e grava o resultado em uma planilha para impressão. Com base no texto-base, conclua qual ação descrita corresponde ao uso de um programa que recebe um algoritmo como entrada e produz outro algoritmo como saída.
- A) Ordenar voluntários por disponibilidade antes de montar a escala final no aplicativo.
- B) Transformar regras do arquivo em uma nova função de escala gerada automaticamente.
- C) Salvar o arquivo de regras para poder reutilizá-lo quando o festival ocorrer novamente.
- D) Ajustar limites de horas por pessoa em configurações sem alterar o código do aplicativo.
- E) Aplicar a função de escala para obter a lista final de turnos de cada voluntário.
✅ Resposta correta: alternativa B
Resolução passo a passo
- O enunciado descreve um programa (o Montador) que recebe como entrada um conjunto de regras escritas em texto (que funciona como um algoritmo descrito de forma simples) e produz como saída um trecho de código, a função montarEscala(), que é um outro algoritmo executável. Isso caracteriza um programa que transforma algoritmo em algoritmo, ou seja, um gerador de código ou compilador.
- Procuramos a ação que corresponde exatamente a essa transformação: receber regras e gerar uma nova função automaticamente. A alternativa B descreve isso: transformar as regras do arquivo em uma nova função de escala gerada automaticamente.
- Por que as outras estão erradas: A) ordenar voluntários é uma operação sobre dados, não produz um algoritmo como saída. C) salvar o arquivo é apenas armazenamento, sem transformação. D) ajustar limites em configurações altera parâmetros, sem gerar novo algoritmo. E) aplicar a função executa um algoritmo já existente e gera uma lista, sem criar outro algoritmo.
- Conclusão: a alternativa correta é B, que coincide com o gabarito oficial.
💡 Dica: Identifique qual ação representa transformação de regras em código.
Alternativa por alternativa
O aluno pode ter associado a escala a uma etapa de organização de dados e confundido ordenar informações com produzir um novo algoritmo.
O Montador usa regras (procedimentos) como entrada e produz código/função (novo algoritmo) como saída.
O aluno pode ter entendido que o reaproveitamento de um arquivo de regras já é um programa que gera algoritmos, sem perceber que não há transformação do conteúdo.
O aluno pode ter achado que mudar parâmetros em configurações equivale a gerar um novo algoritmo, ignorando que o código continua o mesmo.
O aluno pode ter confundido executar um algoritmo já pronto com produzir outro algoritmo, já que o texto menciona a execução de montarEscala().
Por que engana: Confundir execução de função com geração automática de código a partir de regras.
Raio-X da questão
geração automática de código
diagnostico
conceito de algoritmo · funções em programação
estude transformação de regras em funções de programação
Confundir execução de função com geração automática de código a partir de regras.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
- Quando comecei a desenvolver uma ferramenta para automatizar a geração de relatórios, implementei um programa que lê…
- Linhas de código percorriam as telas dos participantes durante uma maratona de desenvolvimento, enquanto vozes trocavam…
- Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de…
- Em levantamento interno recente, 85% dos desenvolvedores de uma empresa de software relatou gasto excessivo de horas…
- Em um sistema de bilhetagem de ônibus, uma equipe desenvolveu a ferramenta Rastreador para investigar falhas no roteiro…
🔎 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
