# soluce5.adb

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

    with Gada.Text_IO ;
    with Rois ;

    procedure Mission5 is

       package Txt renames GAda.Text_IO ;

       -- Afficher la liste de tous les rois
       procedure Tout_Afficher is
       begin
          for No in 1..Rois.Nb_Rois loop
    	 Txt.Put_Line(Rois.Nom(No) & " " & Integer'Image(Rois.Debut(No)) & " -" & Integer'Image(Rois.Fin(No))) ;
          end loop ;
       end Tout_Afficher ;

       -- Trouver le numéro du roi ayant régné le plus longtemps
       function Plus_Long return Integer is
          -- Duree maximale observée
          Duree_Max : Integer := 0 ;

          -- Numéro du roi avec la durée maximale
          Numero_Max : Integer ;

          -- Variable intermédiaire pour le calcul de la durée de règne.
          Duree : Integer ;
       begin
          for No in 1..Rois.Nb_Rois loop
    	 Duree := Rois.Fin(No) - Rois.Debut(No) ;
    	 if Duree > Duree_Max then
    	    Duree_Max := Duree ;
    	    Numero_Max := No ;
    	 end if ;
          end loop ;
          return Numero_Max ;
       end Plus_Long ;

       -- Variable pour stocker le résultat de la fonction
       -- (permet de n'invoquer la fonction qu'une seule fois au lieu de trois)
       LongRoi : Integer ;

    begin

       Tout_Afficher ;

       LongRoi := Plus_Long ;
       Txt.Put_Line("Le roi ayant régné le plus longtemps est : " & Rois.Nom(LongRoi)
    		  & " de " & Integer'Image(Rois.Debut(LongRoi))
    		  & " a " & Integer'Image(Rois.Fin(LongRoi))) ;

    end Mission5 ;