Une solution pour l'exercice 2 du TP5 d'informatique en MIAS+MASS S1

PROGRAM tp5exc2 ;

CONST nmax = 999 ;

VAR n,i,k   : integer ;
   T        : array[1..999] of integer ;
   choix    : char ;
   maximum, minimum : integer ;
   moyenne  :  real ;
 
BEGIN
randomize ;

(* saisie du nombre n d'entiers *)
repeat
  write('Combien d''entiers voulez-vous (1 à ',nmax,') ? ') ; readln(n) ;
  until (n>=1) and (n<=nmax) ;

(* saisie ou tirage aléatoire des n entiers *)
write('Voulez-vous choisir vous-meme les valeurs (o/n) ? ') ;
readln(choix) ;
if upcase(choix)='O'
   then begin
        for i:=1 to n do
            repeat
              write(i,'-ième nombre (0 à 10) ? ') ;
              readln(T[i]) ;
              until (T[i]>=0) and (T[i]<=10)
        end
   else for i:=1 to n do T[i]:=random(11) ;

(* menu et choix *)
writeln ;
writeln('Menu :') ;
writeln('-1- moyenne') ;
writeln('-2- liste des éléments pairs') ;
writeln('-3- nombre d''éléments multiples de 3') ;
writeln('-4- maximum(s) et minimum(s)') ;
writeln ;
repeat
  write('Votre choix ? ') ;
  readln(choix) ;
  until (choix>='1') and (choix<='4') ;

(* réalisation du choix *)
case choix of
  '1' : begin
        moyenne:=0 ;
        for i:=1 to n do moyenne:=moyenne+T[i] ;
        moyenne:=moyenne/n ;
        writeln('moyenne : ',moyenne:0:2);
        end ;
  '2' : for i:=1 to n do
          if (T[i] mod 2=0)
             then writeln('le ',i:3,'-ième élément est pair : ',T[i]) ;
  '3' : begin
        k:=0 ;
        for i:=1 to n do if (T[i] mod 3=0) then k:=k+1 ;
        writeln('il y a ',k,' éléments multiples de 3') ;
        end ;
  '4' : begin
        maximum:=T[1] ; minimum:=T[1] ;
        for i:=1 to n do
            begin
            if T[i]>maximum then maximum:=T[i] ;
            if T[i]<minimum then minimum:=T[i] ;
            end ;
        writeln('maximum(s) : ',maximum,' atteint aux indices : ') ;
        for i:=1 to n do if T[i]=maximum then write(i:4) ;
        writeln ;
        writeln('minimum(s) : ',minimum,' atteint aux indices : ') ;
        for i:=1 to n do if T[i]=minimum then write(i:4) ;
        writeln ;
        end ;
  end ;
END.