Salut, je débute le Pascal à l'école et on a eu un petit programme à faire : Entrer le montant en Euros et mettre combien de billets de 500 euros, 200, 100 ... ça fait.
voilà ce que j'ai fait :
program euro;
uses crt;
var a,b:longint;
euros:real;
Begin
write ('Quelle est le montant en euros ? ';
readln (euros);
writeln;
a := trunc(euros*100);
writeln;
writeln (a);
writeln ('Pour faire ',euros:5:2,' euros, il faut :';
writeln;
if (a/50000)>=1 then writeln (trunc(a/50000),'x un billet de 500 euros';
b := a mod 50000;
if (b/20000)>=1 then writeln (trunc(b/20000),'x un billet de 200 euros';
a:= b mod 20000;
if (a/10000)>=1 then writeln (trunc(a/10000),'x un billet de 100 euros';
b := a mod 10000;
if (b/5000)>=1 then writeln (trunc(b/5000),'x un billet de 50 euros';
a:= b mod 5000;
if (a/2000)>=1 then writeln (trunc(a/2000),'x un billet de 20 euros';
b := a mod 2000;
if (b/1000)>=1 then writeln (trunc(b/1000),'x un billet de 10 euros';
a:= b mod 1000;
if (a/500)>=1 then writeln (trunc(a/500),'x un billet de 5 euros';
b := a mod 500;
if (b/200)>=1 then writeln (trunc(b/200),'x une piece de 2 euros';
a:= b mod 200;
if (a/100)>=1 then writeln (trunc(a/100),'x une piece de 1 euro';
b := a mod 100;
if (b/50)>=1 then writeln (trunc(b/50),'x une piece de 50 cents';
a:= b mod 50;
if (a/20)>=1 then writeln (trunc(a/20),'x une piece de 20 cents';
b := a mod 20;
if (b/10)>=1 then writeln (trunc(b/10),'x une piece de 10 cents';
a:= b mod 10;
if (a/5)>=1 then writeln (trunc(a/5),'x une piece de 5 cents';
b := a mod 5;
if (b/2)>=1 then writeln (trunc(b/2),'x une piece de 2 cents';
a := b mod 2;
if a=1 then writeln (a,'x une piece de 1 cent';
readln;
End.
Quand je mets 100.68, ça marche.
Mais si je mets 789.68, il fait comme si c'était 789.67
Je ne comprends pas pourquoi ...
Merci de votre aide.
---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !