Tem-se um algoritmo que aplica desconto fixo de 10% ao preço de um produto. Como generalizar esse algoritmo…
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
Tem-se um algoritmo que aplica desconto fixo de 10% ao preço de um produto. Como generalizar esse algoritmo usando uma variável para permitir diferentes taxas de desconto? Explique a alteração mínima na assinatura e na fórmula.
- A) Adicionar parâmetro desconto; calcular preco_final = preco - desconto.
- B) Eliminar a variável desconto e usar valor absoluto de 10%.
- C) Adicionar parâmetro taxa; calcular preco_final = preco * (1 - taxa).
- D) Modificar apenas a fórmula para preco_final = preco - (preco * 0.1).
- E) Alterar a assinatura para incluir o preço final como parâmetro.
✅ Resposta correta: alternativa C
Resolução passo a passo
- O algoritmo original aplica um desconto fixo de 10% sobre o preço, ou seja, preco_final = preco - (preco * 0.1), que equivale a preco * 0.9. O problema é que a taxa 0.1 está embutida no código, impedindo outros descontos sem reescrever a fórmula.
- Para generalizar, é preciso transformar a taxa em um parâmetro. A alteração mínima na assinatura é acrescentar um parâmetro taxa, por exemplo funcao calcular_preco_final(preco, taxa).
- A fórmula passa a ser preco_final = preco * (1 - taxa). Se taxa valer 0.1, o resultado é o mesmo do algoritmo original; se valer 0.25, aplica-se um desconto de 25%.
- Verificação das alternativas erradas. A: o parâmetro desconto recebe um valor absoluto em reais, mas a fórmula subtrai esse valor do preço, o que não representa uma taxa percentual. B: eliminar a variável e fixar 10% em valor absoluto não generaliza nada, pois a taxa continua fixa. D: mantém a taxa 0.1 embutida e não cria nenhuma variável, portanto não generaliza. E: incluir o preço final como parâmetro é incoerente, pois o preço final é justamente o resultado que o algoritmo deve calcular.
- Conclusão: a alternativa C é a que faz a generalização mínima correta, tornando a taxa um parâmetro e mantendo a fórmula proporcional ao preço.
💡 Dica: Considere a variável para a taxa de desconto na fórmula.
Alternativa por alternativa
O aluno confunde taxa percentual com valor monetário, imaginando que o desconto é uma quantia fixa em reais subtraída do preço. Isso muda o sentido do problema, que trata de um percentual.
Por que engana: Confundir a aplicação de desconto fixo com a aplicação de uma taxa variável, não utilizando a fórmula correta para calcular o preço final.
O aluno acredita que remover a variável e fixar um valor de 10% seria uma generalização, sem perceber que o valor continua imutável e que a questão pede flexibilidade para diferentes taxas.
O parâmetro 'taxa' transforma o desconto fixo em variável, permitindo aplicar diferentes percentuais sem duplicar código.
O aluno pensa que reescrever a fórmula mantendo o 0.1 fixo já resolve o problema, sem perceber que a taxa precisa ser uma variável para permitir diferentes valores.
O aluno acha que o preço final deve ser entrada da função, quando na verdade ele é o resultado calculado a partir do preço original e da taxa.
Raio-X da questão
algoritmo de desconto
fixacao
variáveis em algoritmos · cálculo de porcentagens
Revisar como utilizar variáveis em algoritmos.
Confundir a aplicação de desconto fixo com a aplicação de uma taxa variável, não utilizando a fórmula correta para calcular o preço final.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Um programador precisa resolver um problema de cálculo de descontos em preços. Como ele pode generalizar seu algoritmo?
- Um programador deseja criar um algoritmo que calcule o preço total de produtos com e sem desconto. Como ele pode usar…
- Um algoritmo de faturamento usa a variável 'taxa_desconto' com valor fixo. Qual alteração simples no algoritmo aumenta…
- Imagine que você precisa criar um algoritmo que calcule o preço total de produtos com descontos variados. Como você…
- Um algoritmo foi criado para calcular o preço de uma compra. Se o valor for acima de 100, aplica 10% de desconto, senão…
- Elabore um algoritmo que considere o cálculo do preço de produtos com descontos, utilizando variáveis para representar…
🔎 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
