Jump to content

[Resolvido] Calcular o desconto


Recommended Posts

Posted (edited)

Olá a todos.

Estou com uma duvida num exercício para a escola.

O enunciado é o seguinte:

Escreva um programa em Pascal que lhe permita pedir ao utilizador a introdução do preço base de um artigo, a quantidade desse artigo e em seguida determinar o valor a pagar pela compra antes do desconto e depois do desconto de 10% (o valor do desconto deve ser definido numa constante). Tenha em atenção o output apresentado. Comente o programa e grave-o com o nome ficha1_exercicio3.pas.

Eu ja tenho o seguinte código:

Program Desconto ;
const desc = 0.10;
Var
pbase, total, pdesc : real;
quant : integer;
Begin
write ('Preço base: '); readln (pbase);
write ('Quantidade: '); readln (quant);
total := pbase * quant;
writeln ('Total sem desconto ', total :2:2,' euros.');

//Desconto

writeln ('Total com desconto ', total :2:2,' euros.');
End.

A minha duvida é a fórmula para calcular o desconto.

Nós Depois do código compilado deviamos inserir:

Preço base: 15.5

Quantidade: 2

e o output devia ser:

Total sem desconto 31.00 euros

Total com desconto 27.90 euros

E é aos 27.90 que nao consigo chegar.

Edited by thoga31
GeSHi
Posted (edited)

A formula do NunoDinis está correcta para calculares o desconto.

Depois para teres o preço com desconto, basta subtraires esse valor ao preço total. Usando as tuas variáveis, ficaria:

pdesc:=total - (total*desc);

Uma alternativa é indicares o valor de desconto 1.10 em vez de 0.10.

É um truque que se usa muito no mundo real para calcular percentagens.

Neste caso ficaria a formula assim:

pdesc:=total/desc;

EDIT:

Atenção a uma coisa... No teu ultimo writeln, não estás a mostrar a variável pdesc, mas sim a total

Será por aí que não te está a dar?

Edited by nunopicado

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted (edited)

A formula do NunoDinis está correcta para calculares o desconto.

Depois para teres o preço com desconto, basta subtraires esse valor ao preço total. Usando as tuas variáveis, ficaria:

pdesc:=total - (total*desc);

Uma alternativa é indicares o valor de desconto 1.10 em vez de 0.10.

É um truque que se usa muito no mundo real para calcular percentagens.

Neste caso ficaria a formula assim:

pdesc:=total/desc;

EDIT:

Atenção a uma coisa... No teu ultimo writeln, não estás a mostrar a variável pdesc, mas sim a total

Será por aí que não te está a dar?

Não eu antes tinha o código assim :

Program Desconto ;
const desc = 0.10;
Var
pbase, total, pdesc : real;
quant : integer;
Begin
write ('Preço base: '); readln (pbase);
write ('Quantidade: '); readln (quant);
total := pbase * quant;
writeln ('Total sem desconto ', total :2:2,' euros.');
total := pbase * quant * 0.10;
writeln ('Total com desconto ', total :2:2,' euros.');
End.
Edited by thoga31
GeSHi
Posted (edited)

OK, é no ultimo calculo que está o erro...

Como estás a fazer, dá-te o valor do desconto. Não é isso que pretendes, certo?

Tens de calcular é o preço base, menos o desconto.

.
.
.
total := pbase * quant;
writeln ('Total sem desconto ', total :2:2,' euros.');
total := total - (total*desc); // a variavel total aqui já leva o preço total, pelo que não precisamos voltar a calcula-lo. Vamos é subtrair-lhe o valor do desconto, que por sua vez é o proprio total multiplicado pela constante que detem o valor do desconto.
writeln ('Total com desconto ', total :2:2,' euros.');
Edited by nunopicado

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted

Sempre às ordens...

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.