the lefty
Messages postés1Date d'inscriptionmardi 28 avril 2009StatutMembreDernière intervention28 avril 2009
-
28 avril 2009 à 20:53
Bonjour,
Alors voila, étant novice en programmation je sollicite votre aide, je dois réaliser un programme se divisant en 3 applications dont l'une doit calculer la moyenne, le maximum et le minimum d'une série de nombre mais voila, mon programme n'est valable que pour un nombre de valeur finie et devrait l'être pour des nombres allant jusqu'à l'infini. Une autre boucle que le "for" est-elle nécessaire? j'ai cherché mon erreur mais je ne vois vraiment pas comment faire.
Voici le code
program labo2;
uses
crt;
var
choix:char;
choix2:real;
compteur,n:integer;
nombre,petit,grand,moyenne,somme,rac:real;
heu,minu:byte;
Begin
clrscr;
repeat
begin
writeln('Programme en 3 applications');
writeln('a, calculer la moyenne, le minimum et le maximum dans une suite de nombres positifs');
writeln('b, calculer la racine carree des 10 premiers nombres entiers');
writeln('c,introduire une heure pour connaitre l heure qu il sera une minute plus tard');
writeln('d,merci et aurevoir');
readln(choix);
end;
Begin
case choix of
'a':begin
for compteur:=1 to 1000 do
begin
writeln('donner un nombre');
readln(nombre);
if nombre>0
then
begin
somme:=somme+nombre;
if compteur=1
then petit:=nombre;
if nombre<petit
then petit:=nombre;
if nombre>grand
then grand:=nombre;
end
else
begin
writeln('pas de nombre negatif,merci');
compteur:=compteur-1;
writeln('compteur=',compteur);
end;
writeln('le plus petit est=',petit);
writeln('le plus grand est=',grand);
moyenne:=somme/compteur;
writeln('la moyenne est=', somme/compteur);
writeln('introduire un autre nombre?');
writeln('1: oui');
writeln('2: non');
readln(choix2);
if choix2=2
then
begin
writeln('merci d avoir utilis‚ cette application, au revoir');
delay(7000);
exit;
end;
end;
end;
'b':Begin
for n:=1 to 10 do
begin
rac:=sqrt(n);
writeln('la racine du nombre',n,'est',rac)
end;
end;
'c':begin
writeln('introduire une heure pour connaitre l heure une minute plus tard');
writeln('l heure:');
read(heu);
writeln('les minutes');
read(minu);
if minu=59
then
writeln('une minute plus tard il sera ', heu+1,'h et 00min')
else
writeln('une minute plus tard, il sera ', heu, 'h et ',minu+1,' min');
end;
'd':begin
writeln('merci et aurevoir');
delay(2500);
exit;
end;
end;
end;
until 'choix'='d';
end.