Informática, perguntado por fabiocarlosping, 11 meses atrás

O algoritmo a seguir representa a Descrição Narrativa dos passos para calcular o desconto no valor de uma compra em uma loja de departamentos. Se o valor da compra for maior que R$ 1.000,00 o desconto é de 10%, se for maior que R$ 10.000,00 o desconto é de 15%. Qual alternativa melhor se adequa ao Passo 2?

PASSO 1: Somar o valor dos produtos da compra.
PASSO 2:_____.
PASSO 3: Se o valor for maior que R$ 10.000,00 calcular o desconto de 15%.
PASSO 4: Informar o valor ao cliente.


1- PASSO 2: Se o valor for maior que R$ 1.000,00 e menor que R$ 10.000,00 calcular o desconto de 10%.

2- PASSO 2: Se o valor for menor que R$ 1.000,00 e maior que R$ 10.000,00 calcular o desconto de 10%.

3- PASSO 2: Se o valor for maior que R$ 10.000,00 e maior que R$ 1.000,00 calcular o desconto de 15%.

4- PASSO 2: Se o valor for menor que R$ 1.000,00 e menor que R$ 10.000,00 calcular o desconto de 10%.

5- PASSO 2: Se o valor for maior que R$ 10.000,00 e menor que R$ 10.000,00 calcular o desconto de 15%.


bokomoko: esse enunciado está errado pois as alternativas não admitem a possibilidade de ser 10000 o preço.

Soluções para a tarefa

Respondido por bokomoko
2
Esse enunciado está com erro.

Observe, a primeira regra do enunciado é 
"Se o valor for maior que 1000 o desconto é de 10% " 
Então concluimos que se o valor for 1000 ou menor, o desconto é 0 (zero). 
A segunda regra é
"se for maior que R$ 10.000,00 o desconto é de 15%"
Então concluimos que se o valor for 10000, o desconto será 10%, concorda ? Segunda conclusão.

Pois bem, as alternativas que são apresentadas são:
"Se o valor for maior que R$ 1.000,00 e menor que R$ 10.000,00 calcular o desconto de 10%."
Essa alternativa está errada pois fere a conclusão 2.

a segunda alternativa
"Se o valor for menor que R$ 1.000,00 e maior que R$ 10.000,00 calcular o desconto de 10%."
Essa alternativa fere a segunda regra, então nào serve.Além de ser um absurdo, pois um valor não pode ser menor que 1000 e ao mesmo tempo ser maior que 10000. Ou seja, essa condição nunca será satisfeita.

a terceira alternativa
"Se o valor for maior que R$ 10.000,00 e maior que R$ 1.000,00 calcular o desconto de 15%."
está correto porém é redundante em si mesmo. Ora, se um valor é maior que 10000 ele obviamente é maior que 1000. além disso, esse teste é repetido no passo 3. portanto essa alternativa está super errada e não serve.

a quarta alternativa
"Se o valor for menor que R$ 1.000,00 e menor que R$ 10.000,00 calcular o desconto de 10%."
Ora, se o valor é menor que 1000, obviamente é menor que 10000. Então o teste é redundante. Além disso, vai dar desconto para compras com valor menor que 1000 e fere a primeira regra e a primeira conclusào.

quinta alternativa
"
Se o valor for maior que R$ 10.000,00 e menor que R$ 10.000,00 calcular o desconto de 15%."
Essa é a pior de todas. Um valor nào pode ser maior que 10000 e menor que 10000 ao mesmo tempo. É um absurdo. Essa condição nunca será satisfeita.

Portanto, nenhuma das alternativas responde corretamente, o que denota um erro na elaboraçao do exercício (ou na transcrição dele).

a resposta correta seria
"se o valor for maior que 1000 e menor ou igual a 10000 calcular o desconto de 10%"

Parece excesso de rigor mas em programação esses detalhes sào importantes. Não é a toa que vemos situações bizarras em sofware que apresentam erros. No caso, o algoritmo não considerou a possibilidade do valor da compra ser exatamente 10000. Parece improvável que aconteça, porém, quando se tem uma loja que recebe dezenas de milhares de clientes num período de tempo, essa possibilidade se torna muito real. até porque é comum se fazer "arredondamentos" no preço.


Perguntas interessantes