Considere três instâncias de cálculo de tarifa: desconto percentual, desconto fixo e tarifa com sobretaxa…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Comparar diferentes casos particulares (instâncias) de um mesmo problema, identificando as semelhanças e diferenças entre eles, e criar um algoritmo para resolver todos, fazendo uso de variáveis (parâmetros) para permitir o tratamento de todos os casos de forma genérica.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Considere três instâncias de cálculo de tarifa: desconto percentual, desconto fixo e tarifa com sobretaxa. Indique qual parâmetro unificador e a lógica condicional mínima que generaliza as três instâncias em um único algoritmo usando variável 'tipo'.
- A) Parâmetros: tipo (booleano), valor; lógica: se tipo verdadeiro então...
- B) Parâmetros: tipo (string), valor; lógica: combinar todos como soma
- C) Parâmetros: tipo (inteiro), valor; lógica: usar apenas um cálculo fixo
- D) Parâmetros: tipo ("percentual"|"fixo"|"sobretaxa"), valor; lógica: if tipo=="percentual" então preço*(1-valor) elseif tipo=="fixo" então preço-valor else preço+valor
- E) Parâmetros: tipo (arranjo), valor; lógica: se tipo[] == 'fixo' então...
✅ Resposta correta: alternativa D
Resolução passo a passo
- A questão pede um parâmetro unificador e uma lógica condicional mínima que cubra as três instâncias de tarifa (desconto percentual, desconto fixo e tarifa com sobretaxa) em um único algoritmo controlado por uma variável 'tipo'.
- Resolvendo por conta própria, o parâmetro 'tipo' deve assumir um conjunto finito de valores que identificam cada instância, e 'valor' deve ser o número que a instância usa (percentual, valor fixo ou acréscimo). Assim, 'tipo' deve ser um valor de enumeração com três possibilidades: "percentual", "fixo" ou "sobretaxa".
- A lógica condicional mínima é uma cadeia if/elseif/else: se tipo for "percentual", o preço final é preço*(1-valor); se for "fixo", é preço-valor; caso contrário (sobretaxa), é preço+valor. Essa é exatamente a alternativa D.
- Comparando com o gabarito oficial (D), há concordância total.
- Por que as outras estão erradas: A usa booleano, que só comporta duas possibilidades e não distingue as três instâncias. B combina tudo como soma, o que ignora a natureza de desconto e de sobretaxa. C usa apenas um cálculo fixo, contrariando a exigência de três comportamentos distintos. E usa arranjo e compara tipo[] com 'fixo', o que é sintaticamente incoerente e não expressa a lógica de seleção entre as três instâncias.
💡 Dica: Identifique a lógica condicional que abrange os três tipos de tarifa.
Alternativa por alternativa
Acredita que um parâmetro booleano basta para representar três tarifas diferentes, confundindo a quantidade de estados necessários com a de um sim/não.
Supõe que todas as tarifas podem ser tratadas somando um valor ao preço, ignorando que desconto percentual e desconto fixo subtraem do preço.
Por que engana: Confundir o tipo de dado da variável 'tipo', utilizando um tipo inadequado que não permite a comparação correta.
Entende que a generalização exige um único cálculo fixo, sem perceber que o parâmetro 'tipo' deve permitir escolher entre comportamentos diferentes.
O parâmetro 'tipo' identifica a operação e 'valor' fornece magnitude; a estrutura condicional aplica a fórmula correta para cada instância sem duplicar código.
Imagina que 'tipo' deve ser um arranjo e confunde a variável de tipo com uma estrutura de dados, além de usar uma comparação com sintaxe incoerente ('tipo[] == ').
Raio-X da questão
algoritmo de tarifas
fixacao
lógica condicional · variáveis em algoritmos
Revisar lógica condicional e estruturas de algoritmos.
Confundir o tipo de dado da variável 'tipo', utilizando um tipo inadequado que não permite a comparação correta.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Compare três instâncias de algoritmos para cálculo de tarifa (desconto local, meia-entrada, taxa administrativa)…
- Projete um algoritmo generalizado que compare várias instâncias de cálculo de frete — por peso (tabela por faixa)…
- Um algoritmo de faturamento usa a variável 'taxa_desconto' com valor fixo. Qual alteração simples no algoritmo aumenta…
- Um programador precisa resolver um problema de cálculo de descontos em preços. Como ele pode generalizar seu algoritmo?
- Tem-se um algoritmo que aplica desconto fixo de 10% ao preço de um produto. Como generalizar esse algoritmo usando uma…
- Descreva como você criaria um algoritmo para resolver problemas de cálculo de desconto em diferentes produtos…
Todas as questões de Estratégias de solução de problemas - Generalizaçã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
