Considere um algoritmo que percorre uma lista de temperaturas e conta quantos valores excedem um limite. 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
Considere um algoritmo que percorre uma lista de temperaturas e conta quantos valores excedem um limite. Para generalizá-lo a diferentes limites sem alterar o corpo do laço, qual elemento deve ser convertido em parâmetro da função?
- A) O tipo de dados da lista deve ser mudado para inteiro somente.
- B) A saída do resultado deve ser convertida em um booleano indicando se excede.
- C) O limite (threshold) deve ser um parâmetro de entrada do algoritmo.
- D) O número de iterações do laço deve ser transformado em parâmetro.
- E) A lista de temperaturas deve ser convertida em um string concatenado.
✅ Resposta correta: alternativa C
Resolução passo a passo
- O algoritmo percorre uma lista de temperaturas e conta quantos valores excedem um limite. O limite é o valor de comparação usado dentro do laço, por exemplo se temperatura > limite então conta++.
- Queremos reutilizar o mesmo algoritmo para limites diferentes sem mexer no corpo do laço. Para isso, o valor que muda de uma situação para outra deve ser recebido de fora, como parâmetro. Esse valor é o limite (threshold).
- Ao transformar o limite em parâmetro de entrada, a comparação dentro do laço continua idêntica; só muda o valor passado na chamada da função. Isso resolve exatamente o problema proposto.
- Verificação das demais alternativas:
- A) Mudar o tipo da lista para inteiro somente não generaliza nada e ainda restringe os dados, pois temperaturas podem ser decimais.
- B) Converter a saída em booleano perderia a contagem, que é o resultado pedido pelo algoritmo.
- D) O número de iterações é determinado pelo tamanho da lista e não pelo limite; transformá-lo em parâmetro não afeta a comparação com diferentes limites.
- E) Converter a lista em string concatenada não tem relação com a comparação numérica e tornaria a comparação inviável sem conversões.
- Portanto, a alternativa correta é a C, que coincide com o gabarito oficial.
💡 Dica: Identifique o elemento que deve ser parametrizado.
Alternativa por alternativa
Acredita que generalizar o algoritmo exige apenas ajustar o tipo de dado da lista, confundindo a flexibilidade de um parâmetro com a restrição de tipo.
Por que engana: Confundir a necessidade de alterar o corpo do laço com a modificação de outros elementos que não são essenciais para a generalização do algoritmo.
Confunde a saída do algoritmo com o critério de comparação, achando que o resultado deveria ser apenas sim ou não, e não a contagem pedida.
Tornar o limite um parâmetro permite reutilizar o mesmo código para critérios diferentes; o laço permanece inalterado e o comportamento muda conforme o valor recebido.
Imagina que o número de repetições do laço depende do limite, quando na verdade ele depende do tamanho da lista percorrida.
Supõe que a estrutura de dados precisa ser transformada em texto para qualquer generalização, ignorando que a comparação é numérica.
Raio-X da questão
parâmetros de função
avaliacao
funções em programação · parâmetros de função
Revisar como utilizar parâmetros em funções de algoritmos.
Confundir a necessidade de alterar o corpo do laço com a modificação de outros elementos que não são essenciais para a generalização do algoritmo.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em um algoritmo que recebe uma coleção de dados e um parâmetro 'limite' para filtrar elementos maiores que esse valor…
- Desenvolva um algoritmo em pseudocódigo que, dada uma lista de temperaturas e um limite L, conte quantos valores excedem…
- Num algoritmo que percorre uma lista de dados, qual operação deve ser aplicada a uma variável contador cada vez que um…
- Um algoritmo de irrigação usa a variável fixa 'limite_chuva' (30 mm) para decidir ligar aspersores. Para reutilizá-lo em…
- Em um algoritmo que contém uma função que soma elementos de uma lista e usa uma variável contador temporária dentro…
- Um algoritmo recebe uma coleção de temperaturas em Celsius e atualmente converte todos os valores para Fahrenheit com…
🔎 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
