Ao generalizar um algoritmo de filtragem para aceitar diferentes critérios sem alterar seu corpo, que tipo de…
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
Ao generalizar um algoritmo de filtragem para aceitar diferentes critérios sem alterar seu corpo, que tipo de parâmetro deve ser adicionado para representar a condição (por exemplo 'idade > 18')?
- A) Um número que representa o limite etário, como 18.
- B) Um valor booleano fixo que sempre retorna verdadeiro ou falso.
- C) Um parâmetro função/predicado (callback) que recebe um elemento e retorna verdadeiro/falso.
- D) Um tipo de dados inteiro que representa uma condição numérica.
- E) Um string que descreve a condição como texto, como 'idade > 18'.
✅ Resposta correta: alternativa C
Resolução passo a passo
- O enunciado pede o tipo de parâmetro que permite trocar o critério de um algoritmo de filtragem (por exemplo, 'idade > 18') sem alterar o corpo do algoritmo. Passo 2: Resolvendo por conta própria, a ideia central é separar o 'como filtrar' (a estrutura de percorrer a lista e separar os elementos) do 'o que é aceito' (o critério). Para que o critério possa variar, ele precisa ser recebido de fora como um parâmetro que se comporta como uma regra. Passo 3: Essa regra é uma função (predicado ou callback) que recebe um elemento e devolve verdadeiro ou falso. O algoritmo chama essa função para cada elemento e mantém apenas os que retornam verdadeiro. Assim, trocar 'idade > 18' por 'nota >= 7' exige apenas passar outra função, sem mexer no corpo. Passo 4: A alternativa A é um número fixo, que serve para um único limite e não representa uma condição geral. Passo 5: A alternativa B é um booleano fixo, que não varia com o elemento analisado e, portanto, não filtra nada. Passo 6: A alternativa D é um tipo de dado, e não um mecanismo de variação de critério. Passo 7: A alternativa E é um texto, que o algoritmo não consegue executar sem um interpretador, o que quebra a generalidade pretendida. Passo 8: O gabarito oficial (C) está correto e coincide com a resolução feita aqui, sem divergência.
💡 Dica: Pense sobre como os parâmetros podem ser utilizados em funções.
Alternativa por alternativa
O aluno acredita que basta parametrizar o valor-limite (18) para generalizar o filtro. Esse raciocínio resolve apenas o caso de um limite numérico, pois trocar a operação (por exemplo, de maior para igual) ou o campo comparado exigiria alterar o corpo.
Por que engana: Confundir a necessidade de um parâmetro dinâmico com um valor fixo, escolhendo uma alternativa que não permite flexibilidade na condição.
O aluno confunde o resultado de um teste com o próprio critério, imaginando que um booleano fixo possa representar a condição. Um valor booleano fixo não depende do elemento analisado, então não consegue decidir quais itens passam no filtro.
Passar um predicado separa a condição da rotina genérica, permitindo reutilização para vários critérios sem modificar o algoritmo principal.
O aluno pensa que declarar um tipo inteiro para o parâmetro já representa uma condição numérica. Um tipo de dado descreve a forma do valor, não a regra de decisão aplicada a cada elemento.
O aluno acredita que descrever a condição em texto, como 'idade > 18', já permite que o algoritmo a use. Sem uma etapa de interpretação ou avaliação, a string é apenas um dado e não executa a comparação.
Raio-X da questão
algoritmo de filtragem
avaliacao
algoritmo de filtragem · funções e parâmetros
Revisar como parâmetros funcionam em algoritmos.
Confundir a necessidade de um parâmetro dinâmico com um valor fixo, escolhendo uma alternativa que não permite flexibilidade na condição.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Você tem um algoritmo que filtra registros por campo fixo 'cidade'. Qual variável ou parâmetro deve ser adicionado para…
- Em um algoritmo que recebe uma coleção de dados e um parâmetro 'limite' para filtrar elementos maiores que esse valor…
- Ao generalizar um algoritmo de ordenação para aceitar critérios distintos, que tipo de variável deve ser passada como…
- Considere um algoritmo que decide aceitar ou rejeitar itens conforme uma política configurável (ex.: regras de…
- Ao generalizar um algoritmo para aplicar operações distintas a elementos de uma coleção heterogênea, que tipo de…
- Num algoritmo, o que deve ser feito quando há uma condição a ser verificada?
🔎 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
