Um algoritmo de ordenação atualmente compara itens pelo campo "preço". Qual parâmetro permite reutilizar o…
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
Um algoritmo de ordenação atualmente compara itens pelo campo "preço". Qual parâmetro permite reutilizar o mesmo algoritmo para ordenar por qualquer critério (nome, data, avaliação)?
- A) Ordenar por qualquer campo exige um novo algoritmo para cada tipo de dado.
- B) Adicionar um parâmetro que determina diretamente a ordem de um único campo é suficiente.
- C) Um algoritmo de ordenação só pode comparar itens por um único critério predefinido.
- D) Adicionar uma função de comparação (callback) como parâmetro que recebe dois itens e retorna ordem.
- E) Uma função de comparação não é necessária, pois os dados sempre têm uma ordem natural.
✅ Resposta correta: alternativa D
Resolução passo a passo
- O algoritmo de ordenação, hoje, compara itens sempre pelo campo preço, o que o prende a um único critério. Para reutilizá-lo com nome, data ou avaliação, é preciso separar a lógica de ordenação da lógica de comparação.
- A solução é receber como parâmetro uma função de comparação (callback). Ela recebe dois itens e retorna um valor negativo, zero ou positivo, indicando qual deve vir antes. O algoritmo de ordenação apenas chama essa função, sem saber qual campo está sendo usado.
- Assim, para ordenar por preço, passa-se uma função que compara preços; para ordenar por nome, passa-se outra que compara nomes; e o mesmo algoritmo serve para todos os casos.
- Analisando as erradas: A) está errada, pois justamente o objetivo é evitar criar um algoritmo novo para cada tipo de dado. B) está errada, pois um parâmetro que fixa a ordem de um único campo não resolve o problema de trocar de critério. C) está errada, pois o enunciado trata exatamente de permitir critérios variados, não apenas um fixo. E) está errada, pois dados como nomes ou datas não têm uma ordem natural única que sirva para qualquer finalidade, e a avaliação pode ser ordenada de formas diferentes.
- Portanto, a alternativa correta é a D, que corresponde ao gabarito oficial.
💡 Dica: Pense em como um algoritmo pode ser parametrizado.
Alternativa por alternativa
O aluno acredita que cada tipo de dado exige um algoritmo totalmente novo, sem perceber que o mesmo algoritmo pode ser generalizado com um parâmetro.
O aluno imagina que um parâmetro com a ordem de um único campo basta para trocar de critério, sem perceber que o parâmetro continua preso a um campo específico.
Por que engana: Confundir a necessidade de um novo algoritmo com a possibilidade de reutilização do mesmo algoritmo através de parâmetros.
O aluno entende que o algoritmo está amarrado a um critério predefinido por natureza, ignorando que a comparação pode ser passada de fora como parâmetro.
Uma função de comparação abstrai o critério; o algoritmo de ordenação chama essa função para decidir a ordem sem depender do campo específico.
O aluno supõe que os dados sempre possuem uma ordem natural, usando a intuição do dia a dia de que nomes, datas e avaliações se ordenam de um único jeito.
Raio-X da questão
algoritmo de ordenação
avaliacao
funções e parâmetros em programação · algoritmos de ordenação
Revisar como funcionam os parâmetros em algoritmos.
Confundir a necessidade de um novo algoritmo com a possibilidade de reutilização do mesmo algoritmo através de parâmetros.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete a assinatura de um algoritmo de ordenação generalizado que permita reutilizar o mesmo código para diferentes…
- Dado dois algoritmos de ordenação que usam critérios distintos (por preço e por nome), que mudança permite criar um…
- Ao generalizar um algoritmo de ordenação para aceitar critérios distintos, que tipo de variável deve ser passada como…
- Ao implementar num algoritmo a ordenação de uma matriz de registros 'tarefas' por campo 'prioridade', que propriedade do…
- Ao ordenar todos os registros de uma matriz por campo 'nome' e preservar a ordem relativa entre registros com o mesmo…
- Em uma lista de compras, você deve organizar os itens. O que seria um algoritmo de ordenação?
🔎 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
