with Ada.Text_Io; use Ada.Text_Io;
with Ada.Float_Text_Io; use Ada.Float_Text_Io;
-- with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;

package body Ecole is

-- Fonction récursive qui renvoie vrai si une matière et dans une filière et faux sinon
   function Fait_Partie (Matiere : T_Matiere; Filiere : T_Filiere) return Boolean is
   begin
      if Filiere = null
      then
         return(False);
      elsif Filiere.all.Matiere = Matiere
      then
         return(True);
      else
         return(Fait_Partie(Matiere, Filiere.all.Suiv));
      end if;
   end Fait_Partie;

-- Fonction qui vérifie qu'une matière n'est pas simultanément dans deux filiere
   function Ne_Fait_Pas_Partie (Matiere : T_Matiere; Filiere1 : T_Filiere; Filiere2 : T_Filiere) return Boolean is
   begin
      return(not(Fait_Partie(Matiere,Filiere1) and then Fait_Partie(Matiere,Filiere2)));
   end Ne_Fait_Pas_Partie;

end Ecole;
