opération arithmétique
Forum Programmation : opération arithmétique
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
Il me faut écrire un programme qui calcule le nbr minimum de billets et de pièces de monnaye nécessaires pour décomposer une somme d'argent donnée par l'utilisateur du programme.
Voilà ce que j'ai fait mais ça me parait un peu trop long :
with ada.text_io, ada.integer_text_io;
s,n : integer;
ada.text_io.put("Qu'elle est le prix?" ); ada.integer_text_io.get(s);
-- Calcul du nombre de billets de 500
n:=0;
while s > 500 loop
s:=s-500;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de billets de 500 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de billets de 200
n:=0;
while s > 200 loop
s:=s-200;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de billets de 200 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de billets de 100
n:=0;
while s > 100 loop
s:=s-100;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de billet de 100 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de billets de 50
n:=0;
while s > 50 loop
s:=s-50;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de billet de 50 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de billets de 20
n:=0;
while s > 20 loop
s:=s-20;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de billets de 20 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de pièces de 10
n:=0;
while s > 10 loop
s:=s-10;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de pièce de 10 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de pièces de 5
n:=0;
while s > 5 loop
s:=s-5;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de pièce de 5 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de pièces de 2
n:=0;
while s > 2 loop
s:=s-2;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de pièces de 2 =" );ada.integer_text_io.put(n);
-- Calcul du nombre de pièces de 1
n:=0;
while s > 1 loop
s:=s-1;
n:=n+1;
end loop;
ada.text_io.new_line;
ada.text_io.put("Nombre de pièce de 1 =" );ada.integer_text_io.put(n);
Qu'en pensez vous?
C'est un peu hors sujet mais c'est quoi comme language ?
@SiM07 : c'est de l' Ada.
@delphe411 :
pour ton programme ca fonctionne en effet mais j'ai l'impression que tu ne te penche pas tellement sur la façon dont tu va programmer ton programme. Il vaut mieux réfléchir un peu plus et coder en moin de lignes pour faire la même chose. Déjà ca évite les erreurs et ensuite ca épargne les doigts ;-)
bref, pense a utiliser le modulo pour ton programme (reste de la division) et la division.
13 / 3 = 4
4 mod 3 = 1
donc
somme / 500 = nombre de billet de 500
somme mod 500 = somme restant a décomposer.
et il ne te reste plus qu'a faire ca pour le nombre de billets et de pièces existantes.
j'ai essayer d'arranger mon programme grace à tes indications :
with ada.text_io, ada.integer_text_io;
s,n,i,valeur : integer;
begin
ada.text_io.put("Quel est le prix?" ); ada.integer_text_io.get(s);
valeur : array(0..8) of integer:=(500,200,100,50,20,10,5,2,1);
for i in 0..8 loop
n:=0;
while s>=valeur(i) loop
s:=s-valeur(i);
n:=n+1;
end loop;
if valeur(i)>=5 then
ada.text_io.put("nombre de billets de" );
else
ada.text_io.put("nombre de pièces de" );
end if;
ada.integer_text_io.put(valeur(i)); ada.text_io.put("=" );
ada.integer_text_io.put(n);
ada.text_io.new_line;
end loop;
end;
Est il correct?
on ne peux pas dire que ce soit vraiment évident a corriger.
si tu veux faire de la programmation il faudrait que tu change ta méthode de programmation, il y a certaines choses qui peuvent faciliter grandement la lecture/relecture et la mise-à-jour d'un programme et qui ne demande pas plus d'efforts lors de la création de ton programme.
Donc, pense à indenter ton code et à donner des nom significatifs à tes variables.
par exemple
Code :
|
Y a t il un moyen d'écrire ce programmme sans untiliser de tableau?
Il y a 708 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
