program traitement_de_tableau;
uses wincrt;

const nmax=30;
type tableau=array[1..nmax] of integer;
var n,i,som_tab,nb_nul,max_tab,j,tampon,val:integer;
    trouve:boolean;
    tab:tableau;
    choix:0..7;

begin
     write('Entrer le nombre d''élément : ');
     read(n);
     while n>30 do
     begin
          writeln('E R R E U R');
          writeln('Le nombre d''élément doit être inférieur ou égal à 30');
          writeln;
          write('Entrer le nombre d''élément');
          read(n);
     end;

     writeln;writeln;

     for i:=1 to n do
     begin
          write('Entrer la valeur de la case ',i,' : ');
          readln(tab[i]);
          writeln;
     end;

     choix:=0;
     repeat
     begin
     clrscr;
     writeln('    **********************************************************************');
     writeln('    *                               M E N U                              *');
     writeln('    *                                                                    *');
     writeln('    *                                                                    *');
     writeln('    * 1_     Afficher le tableau.                                        *');
     writeln('    * 2_     Calculer et afficher la somme des éléments du tableau.      *');
     writeln('    * 3_     Calculer et afficher le nombre d''éléments nuls du tableau.  *');
     writeln('    * 4_     Trouver et afficher le plus grand élément du tableau.       *');
     writeln('    * 5_     Trier le tableau.                                           *');
     writeln('    * 6_     Trouver une valeur dans le tableau.                         *');
     writeln('    *                                                                    *');
     writeln('    * 7_     Sortir.                                                     *');
     writeln('    *                                                                    *');
     writeln('    *                                                                    *');
     writeln('    **********************************************************************');
     writeln;
     write('Entrer votre choix : ');
     readln(choix);

     case choix of

          1:begin
                 writeln('   ___________');
                 writeln('   |   tab   |');
                 writeln('   -----------');
                 for i:=1 to n do
                 writeln('   |   ',tab[i],'     |');
                 readln;
          end;

          2:begin
                 som_tab:=0;
                 for i:=1 to n do
                     som_tab:=tab[i] + som_tab;
                 writeln;
                 write('La somme des éléments du tableau vaut : ',som_tab,'.');
                 readln;
          end;

          3:begin
                 nb_nul:=0;
                 for i:=1 to n do
                 begin
                      if tab[i]=0 then
                         nb_nul:=nb_nul+1;
                 end;
                 writeln;
                 write('Il y a ',nb_nul,' éléments nuls dans le tableau.');
                 readln;
          end;

          4:begin
                 max_tab:=0;
                 for i:=1 to n do
                 begin
                      if (tab[i] > max_tab) then
                         max_tab:=tab[i];
                 end;
                 writeln;
                 write('Le plus grand élément du tableau vaut : ',max_tab,'.');
                 readln;
          end;

          5:begin
                 i:=n;
                 while (i>1) do
                 begin
                       j:=1;
                       while (j<i) do
                       begin
                            j:=j+1;
                            if (tab[j]<tab[j-1]) then
                            begin
                               tampon:=tab[j-1];
                               tab[j-1]:=tab[j];
                               tab[j]:=tampon;
                            end;
                       end;
                       i:=i-1;
                 end;
          end;

          6:begin
                 write('Entrer la valeur à cherche dans le tableau : ');
                 readln(val);
                 i:=1;
                 while (tab[i]<>val) and (i<n) do
                      i:=i+1;
                 if(tab[i]=val) then
                                begin
                                    trouve:=true;
                                    write('La valeur ',val,' a été trouvée.');
                                    readln;
                                end
                                else
                                begin
                                     trouve:=false;
                                     write('La valeur ',val,' n''a pas été trouvée.');
                                     readln;
                                end;


          end;

          7:;





     end;
     end;
     until(choix=7);


end.
