Une solution* de l'exercice 2 du TP 4
d'informatique en DEUG MIAS+MASS S1
Question 1
PROGRAM tp3bexc3a ;
(* USES crt ; *)
VAR niveau, hauteur : integer ;
proba : integer ;
BEGIN
(* clrscr ; *)
write('nombre de marches de l''escalier ? ') ;
readln(hauteur) ;
niveau:=0 ;
while (niveau<hauteur) do
begin
proba:=random(10) ;
case proba of
0,1,2,3 : begin
niveau:=niveau+1 ;
writeln(niveau,': c''est parti!') ;
end ;
4,5,6 : writeln(niveau,': oups!') ;
7,8 : if (niveau=0)
then writeln(niveau,': oups!')
else begin
niveau:=niveau-1 ;
writeln(niveau,': zut!') ;
end ;
9 : if (niveau=0)
then writeln(niveau,': oups!')
else begin
niveau:=0 ;
writeln(niveau,': aie! aie! aie!') ;
end ;
end ;
if (niveau=hauteur) then writeln(niveau,': j'y suis !') ;
end ;
END.
Question 2
PROGRAM tp3bexc3b ;
(* USES crt ; *)
VAR niveau, hauteur, nessais, npas, moyenne : integer ;
proba : integer ;
BEGIN
(* clrscr ; *)
write('nombre de marches de l''escalier ? ') ; readln(hauteur) ;
write('nombre d'essais ? ') ; readln(n) ;
niveau:=0 ;
npas:=0 ;
for i:=1 to nessais do
begin
while (niveau<hauteur) do
begin
proba:=random(10) ;
case proba of
0,1,2,3 : begin
niveau:=niveau+1 ;
writeln(niveau,': c''est parti!') ;
end ;
4,5,6 : writeln(niveau,': oups!') ;
7,8 : if (niveau=0)
then writeln(niveau,': oups!')
else begin
niveau:=niveau-1 ;
writeln(niveau,': zut!') ;
end ;
9 : if (niveau=0)
then writeln(niveau,': oups!')
else begin
niveau:=0 ;
writeln(niveau,': aie! aie! aie!') ;
end ;
end ;
if (niveau=hauteur) then writeln(niveau,':
j'y suis !') ;
npas:=npas+1 ;
end ;
end ;
moyenne:=npas/nessais ;
writeln('Nombre moyen de pas par montée :',moyenne) ;
writeln('pour un escalier de ',hauteur,' marches'.) ;
END.
* avec la collaboration de Sébastien Larat, octobre 2000.