Main work

Abstract

Implémentation des trois opérateurs logiques primaires de l'algèbre de Boole.

Spécification

package Main_Work is
   
   type Binaire is (Vrai, Faux);
   
   function "not" (Veracite : Binaire) return Binaire;
   function "and" (Left, Right : Binaire) return Binaire;
   function "or" (Left, Right : Binaire) return Binaire;
   
   
end Main_Work;

Implémentation

package body Main_Work is
   
   
   
   function "not" (Veracite : Binaire) return Binaire is
      begin
	 if Veracite = Vrai then
	    return Faux;
	 else
	    return Vrai;
	 end if;
      end "not";
   
   function "and" (Left, Right : Binaire) return Binaire is
      begin
	 if ((Left = Vrai) and (Right = Vrai)) then
	    return Vrai;
	 else
	    return Faux;
	 end if;
      end "and";
   
   function "or" (Left, Right : Binaire) return Binaire is
   begin
      return not ((not Left) and (not (Right)));
   end "or";
end Main_Work;

Conversion

Abstract

Conversion du type Binaire vers Boolean et Boolean vers Binaire.

Spécification

   function To_Boolean (Verite : in Binaire) return Boolean;
   
   function To_Binaire(Veracity : in Boolean) return Binaire;
    

Implémentation

   function To_Boolean (Verite : in Binaire) return Boolean is
   begin
      if Verite = Vrai then
         return True;
      end if;
      return False;
   end To_Boolean;

   
   function To_Binaire(Veracity : in Boolean) return Binaire is
   begin
      if Veracity then
	 return Vrai;
      end if;
      return Faux;
   end To_Binaire;