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.