# soluce3.adb

Pour télécharger ce fichier, clic-droit sur ce lien : soluce3.adb

    with Gada.Text_IO ;
    with Gada.Integer_Text_IO ;

    procedure Mission1 is

       package Txt renames Gada.Text_IO ;
       package ITxt renames Gada.Integer_Text_IO ;

       -- Variable utilisée pour stocker l'entier lu au clavier.
       Entier_Lu : Integer := 1 ;

       -- Pour calculer la moyenne : somme et nombre d'éléments de la somme
       Somme : Integer := 0 ;
       Cardinal : Integer := 0 ;

       -- Pour repérer les extremums
       Le_Min : Integer := Integer'Last ; -- Integer'Last est un entier très grand.
       Le_Max : Integer := Integer'First ; -- Integer'First est un entier très petit.

    begin
       Txt.Put_Line("Bonjour, entrez des nombres et terminez par 0.") ;
       Txt.New_Line ;

       while (Entier_Lu /= 0) loop
          Txt.Put("Votre nombre ? ") ;
          Entier_Lu := ITxt.Fget ;

          -- Ici, on recopie le nombre tapé :
          -- Txt.Put_Line("C'est vraiment hyper-cool, vous avez tapé " & Integer'Image(Entier_Lu)) ;

          -- Si ce n'est pas 0, on le compte dans la moyenne, et on l'examine pour la recherche d'extremum.
          if Entier_Lu /= 0 then
    	 Somme := Somme + Entier_Lu ;
    	 Cardinal := Cardinal + 1 ;

    	 if Entier_Lu > Le_Max then
    	    Le_Max := Entier_Lu ;
    	 end if ;

    	 if Entier_Lu < Le_Min then
    	    Le_Min := Entier_Lu ;
    	 end if ;
          end if ;

       end loop ;

       Txt.New_Line ;
       Txt.Put_Line("Moyenne de vos nombres : " & Float'Image( Float(Somme) / Float(Cardinal) )) ;
       Txt.Put_Line("Valeur maximale : " & Integer'Image(Le_Max)) ;
       Txt.Put_Line("Valeur minimale : " & Integer'Image(Le_Min)) ;

    end Mission1 ;