PROGRAM TP5exc2 ;
CONST nmax=100 ; (* par exemple *)
VAR  T : array[1..nmax] of integer ;
            choix, i, compteur, moyenne, min, max : integer ;
BEGIN
repeat
    (* création du tableau *)
    for i:=1 to nmax do T[i]:=random(11) ;
    (* menu *)
    repeat
        clrscr ;
        writeln('Au choix :') ;
        writeln(' -1-  moyenne des éléments du tableau') ;
        writeln(' -2-  liste des éléments pairs avec leurs indices') ;
        writeln(' -3-  le nombre d'éléments multiples de 3') ;
        writeln(' -4-  maximum et minimum du tableau et indices correspondants') ;
        writeln(' -5-  changer de tableau') ;
        writeln(' -0-  terminer') ;
        readln(choix) ;
        clrscr ;
        case choix of
            1 :    begin
                    compteur:=0 ;
                    for i:=1 to nmax do compteur:=compteur+T[i] ;
                    moyenne:=compteur/nmax ;
                    writeln('La moyenne est : ', moyenne:5:2) ;
                    end ;
            2 :   for i:=1 to nmax do
                        if ((T[i] mod 2)=0) then writeln('T[',i,'] est paire') ;
            3 :    begin
                    compteur:=0 ;
                    for i:=1 to nmax do if ((T[i] mod 3)=0) then compteur:=compteur+1 ;
                    writeln('Il y a ',compteur,' éléments multiples de 3') ;
                    end ;
            4 :    begin
                    max:=T[1] ; min:=T[1] ;
                    for i:=2 to nmax do
                        begin
                        if (T[i]<min) then min:=T[i] ;
                        if (T[i]>max) then max:=T[i] ;
                        end ;
                    writeln('Maximum : ', max, ' atteint par :') ;
                    for i:=1 to nmax do
                        if T[i]=max then write('T[',i,']  ')  ;
                    writeln ;
                    writeln('Minimum : ', min, 'atteint par :') ;
                    for i:=1 to nmax do
                        if T[i]=min then write('T[',i,']')  ;
                    writeln ;
                    end ;
        until (choix=0) or (choix=5) ;
    until (choix=0) ;
END.