Axdrum Posted November 29, 2012 at 08:49 PM Report #485181 Posted November 29, 2012 at 08:49 PM (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.5Quantidade: 2 e o output devia ser: Total sem desconto 31.00 eurosTotal com desconto 27.90 euros E é aos 27.90 que nao consigo chegar. Edited November 30, 2012 at 11:06 AM by thoga31 GeSHi
NunoDinis Posted November 29, 2012 at 09:31 PM Report #485183 Posted November 29, 2012 at 09:31 PM Não sabes a formula ou não sabes como fazer ? desconto:=total*0.10; Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
Axdrum Posted November 29, 2012 at 09:35 PM Author Report #485185 Posted November 29, 2012 at 09:35 PM Não sabes a formula ou não sabes como fazer ? desconto:=total*0.10; Eu ja tentei essa fórmula mas mesmo assim não dá
nunopicado Posted November 29, 2012 at 09:39 PM Report #485186 Posted November 29, 2012 at 09:39 PM (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 November 29, 2012 at 09:41 PM 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.
Axdrum Posted November 29, 2012 at 09:47 PM Author Report #485187 Posted November 29, 2012 at 09:47 PM (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 November 30, 2012 at 11:07 AM by thoga31 GeSHi
nunopicado Posted November 29, 2012 at 09:51 PM Report #485189 Posted November 29, 2012 at 09:51 PM (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 November 29, 2012 at 09:52 PM 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.
Axdrum Posted November 29, 2012 at 09:56 PM Author Report #485190 Posted November 29, 2012 at 09:56 PM Obrigado nuno era mesmo isso. Já esta a dar certo. Obrigado pela ajuda.
nunopicado Posted November 29, 2012 at 10:01 PM Report #485192 Posted November 29, 2012 at 10:01 PM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now