# soluce7.adb

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

    with Tapis ;
    with Outil_De_Mesure ;

    procedure Mission7 is

       Somme : constant Float := 340.8 ;

       package OM renames Outil_De_Mesure ;

       -- Cette fonction Dimensions_OK vérifie que la somme des mesures ne dépasse pas une certaine longueur.
       -- Ce n'est pas un corrigé du TD.
       function Dimensions_OK return Boolean is
          Resultat : Boolean ;
       begin
          Resultat := OM.Dim(1) + OM.Dim(2) + OM.Dim(3) <= Somme ;
          return Resultat ;
       end Dimensions_OK ;

       procedure Piloter_Tapis is
          Err : Integer ;
          A_Jeter : Boolean ;
       begin
          Err := 0 ;

          -- Boucle principale
          while (not Tapis.Est_Vide) and Err < 5 loop

    	 if Tapis.Produit_Dans_Zone then

    	    if Dimensions_OK then
    	       A_Jeter := False ;
    	       Err := 0 ;
    	    else
    	       A_Jeter := True ;
    	       Err := Err + 1 ;
    	    end if ;

    	    -- Aiguiller_Produit est bien situé après le deuxième IF
    	    Tapis.Aiguiller_Produit (Poubelle => A_Jeter) ;

    	 else
    	    Tapis.Avancer ;
    	 end if ;

          end loop ;

       end Piloter_Tapis ;

    begin
       Piloter_Tapis ;
    end Mission7 ;