(* Une solution du TP3
18 octobre 2000 *)
(*******************************)
PROGRAM tp3exc1a ;
VAR x, somme : real ;
nombre : integer ;
BEGIN
nombre:=0 ;
somme:=0 ;
repeat
write('donnez-moi un reel (0 pour terminer) ? ') ;
readln(x) ;
if x<>0 then
begin
nombre:=nombre+1 ;
somme:=somme+x ;
end ;
until x=0 ;
writeln('il y a ',nombre,' reels') ;
writeln('leur somme est : ',somme:1:3) ;
writeln('leur moyenne est : ',somme/nombre)
readln ;
END.
(******************************)
PROGRAM tp3exc1b ;
VAR x, somme, maximum, minimum : real ;
nombre : integer ;
BEGIN
nombre:=0 ;
somme:=0 ;
maximum:=0 ;
minimum:=0 ;
repeat
write('reel ? ') ;
readln(x) ;
if x<>0 then
begin
nombre:=nombre+1 ;
somme:=somme+x ;
if (nombre=1) or (x>maximum) then maximum:=x ;
if (nombre=1) or (x<minimum) then minimum:=x ;
end ;
until x=0 ;
writeln('il y a ',nombre,' reels') ;
writeln('leur somme est : ',somme:1:3) ;
writeln('leur moyenne est : ',somme/nombre) ;
write('leur maximum est : ', maximum) ;
writeln(' et leur minimum est : ',minimum) ;
readln ;
END.
(****************************)
PROGRAM tp3exc2_1 ;
VAR nom : string ;
note : integer ;
resultat : real ;
BEGIN
write('quel est votre nom ? ') ; readln(nom) ;
write('note de maths ? ') ; readln(note) ;
resultat:=note*3 ;
write('note de physique ? ') ; readln(note) ;
resultat:=resultat+note*2.5 ;
write('note de chimie ? ') ; readln(note) ;
resultat:=resultat+note*2.5 ;
write('note d''informatique ? ') ; readln(note) ;
resultat:=resultat+note*2 ;
resultat:=resultat/(3+2.5+2.5+2) ;
write('le resultat de ',nom,' est ',resultat:1:1,' mention : ') ;
if resultat>=16
then writeln('tres bien')
else if resultat>14 then writeln('bien')
else if resultat>12 then writeln('assez bien')
else if resultat>10 then writeln('passable')
else writeln('recale') ;
END.
(*******************************)
PROGRAM tp3exc2_2 ;
VAR nom, reponse : string ;
note : integer ;
resultat : real ;
effectif, recus : integer ;
BEGIN
effectif:=0 ;
recus:=0 ;
repeat
write('encore un etudiant ? ') ; readln(reponse) ;
if (reponse<>'non') AND (reponse<>'NON')
then
begin
effectif:=effectif+1 ;
write('quel est votre nom ? ') ; readln(nom) ;
write('note de maths ? ') ; readln(note) ;
resultat:=note*3 ;
write('note de physique ? ') ; readln(note) ;
resultat:=resultat+note*2.5 ;
write('note de chimie ? ') ; readln(note) ;
resultat:=resultat+note*2.5 ;
write('note d''informatique ? ') ; readln(note) ;
resultat:=resultat+note*2 ;
resultat:=resultat/(3+2.5+2.5+2) ;
write('le resultat de ',nom,' est ',resultat:1:1,' mention : ') ;
if resultat>=16 then writeln('tres bien')
else if resultat14 then writeln('bien')
else if resultat12 then writeln('assez bien')
else if resultat10 then writeln('passable')
else writeln('recale') ;
if resultat>=10 then recus:=recus+1 ;
end ;
until (reponse='non') OR (reponse='NON') ;
writeln('Pourcentage de recus : ', recus*100/effectif:1:1) ;
END.
(******************************)
PROGRAM tp3exc3 ;
VAR nom1, nom2 : string ;
de1, de2 : integer ;
score1, score2 : integer ;
ncoups : integer ;
fini : boolean ;
BEGIN
randomize ;
write('Nom du premier joueur ? ') ; readln(Nom1) ;
write('Nom du deuxieme joueur ? ') ; readln(Nom2) ;
writeln('C''est ', nom1,' qui commence') ;
ncoups:=0 ;
fini:= false ;
while (not fini) do
begin
de1:=random(6)+1 ;
de2:=random(6)+1 ;
ncoups:=ncoups+1 ;
score1:=score1+de1+de2 ;
write('jeu ',ncoups:2,' de ',nom1:20,' : ',de1,' , ') ;
writeln(de2,' -> score ',nom1,' : ',score1) ;
fini:=(de1=de2) or (score1>=50)
if fini
then writeln(nom1, ' gagne en ',ncoups,' coups.')
else begin
de1:=random(6)+1 ;
de2:=random(6)+1 ;
score2:=score2+de1+de2 ;
write('jeu ',ncoups:2,' de ',nom2:20,' : ',de1,' , ') ;
writeln(de2,' -> score ',nom2,' : ',score2) ;
fini:=(de1:=de2) or (score2>=50) ;
if fini then writeln(nom2, ' gagne en ',ncoups,' coups.') ;
end ;
end ;
END.
(******************************)