Dado dois algoritmos de ordenação que usam critérios distintos (por preço e por nome), que mudança permite…
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
Dado dois algoritmos de ordenação que usam critérios distintos (por preço e por nome), que mudança permite criar um algoritmo único que sirva para ambos os critérios usando variável? Indique a modificação na chamada do algoritmo.
- A) Alterar assinatura para ordenar sem parâmetros, usando valores padrões.
- B) Adicionar uma função para cada critério de ordenação sem parámetro.
- C) Usar apenas um critério de comparação fixo: sempre por preço.
- D) Alterar somente a estrutura de dados para lista de preços.
- E) Introduzir parâmetro comparador e chamar ordenar(lista, comparador), onde comparador define a regra (por preço ou por nome).
✅ Resposta correta: alternativa E
Resolução passo a passo
- A questão pergunta como unificar dois algoritmos de ordenação que diferem apenas no critério (preço ou nome) em um único algoritmo que receba o critério como variável, e qual seria a mudança na chamada.
- A ideia central é a abstração por parâmetro: em vez de escrever a lógica de comparação dentro do algoritmo, ela é recebida de fora. Assim, o mesmo código de ordenação serve para qualquer regra de comparação.
- Analisando as alternativas, a E introduz exatamente isso: um parâmetro comparador, que define a regra (por preço ou por nome), e a chamada passa a ser ordenar(lista, comparador). Essa é a modificação na assinatura e na chamada pedida pelo enunciado.
- A alternativa A está errada porque valores padrões não permitem escolher dinamicamente entre dois critérios distintos de forma genérica; além disso, não há uma variável que represente o critério.
- A alternativa B está errada porque criar uma função para cada critério duplica o código e não cria um algoritmo único, contrariando o objetivo do enunciado.
- A alternativa C está errada porque fixar sempre o preço elimina justamente a possibilidade de ordenar por nome.
- A alternativa D está errada porque trocar a estrutura de dados não resolve a variação de critério; a lista continuaria exigindo lógica separada para cada ordenação.
- Portanto, o gabarito E está correto: a introdução de um parâmetro comparador é a solução que permite um único algoritmo servir a ambos os critérios.
💡 Dica: Considere como a variável pode ser utilizada para diferenciar os critérios.
Alternativa por alternativa
Acredita que valores padrões em parâmetros bastam para trocar o critério de ordenação, sem perceber que a regra de comparação precisa ser uma entrada explícita.
Por que engana: O aluno pode confundir a necessidade de um parâmetro comparador com a ideia de usar critérios fixos, optando por uma solução que não permite flexibilidade na ordenação.
Entende que separar uma função para cada critério resolve o problema, sem notar que isso duplica a lógica e não gera um algoritmo único com variação por variável.
Interpreta que basta escolher um único critério fixo para simplificar, ignorando que o enunciado exige suportar ambos os critérios (preço e nome).
Acredita que a estrutura de dados define o critério de ordenação, confundindo o tipo de armazenamento dos dados com a regra usada para compará-los.
O comparador abstrai o critério de comparação; a mesma rotina de ordenação reaproveita-se para diferentes instâncias apenas trocando o parâmetro.
Raio-X da questão
algoritmos de ordenação
fixacao
algoritmos de ordenação · variáveis em programação
Revisar como variáveis podem ser utilizadas em algoritmos para diferentes critérios.
O aluno pode confundir a necessidade de um parâmetro comparador com a ideia de usar critérios fixos, optando por uma solução que não permite flexibilidade na ordenação.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Ao generalizar um algoritmo de ordenação para aceitar critérios distintos, que tipo de variável deve ser passada como…
- Projete a assinatura de um algoritmo de ordenação generalizado que permita reutilizar o mesmo código para diferentes…
- Um algoritmo de ordenação atualmente compara itens pelo campo "preço". Qual parâmetro permite reutilizar o mesmo…
- Compare diferentes algoritmos que resolvem o mesmo problema de ordenação de números. Quais são as semelhanças e…
- Descreva como um algoritmo de ordenação pode ser aplicado para organizar uma lista de compras. Cite um exemplo…
- Um algoritmo que ordena números pode ser adaptado para ordenar qualquer lista. Quais estratégias você utilizaria?
🔎 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
