richie3366

mathinfo tp7

Nov 30th, 2012
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 3.35 KB | None | 0 0
  1.  
  2. with Ada.text_io; use Ada.text_io;
  3. with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;
  4.  
  5. procedure tp7_ensembles_finis is
  6.  
  7.  
  8.    NB_ELEM : constant Integer := 4;
  9.    TYPE Ensemble is ARRAY (Integer RANGE  0 .. NB_ELEM - 1) OF Boolean;
  10.  
  11.  
  12.    ----------------------------------------------
  13.    function vide return Ensemble is
  14.       e : Ensemble;
  15.    begin
  16.       for i in e'first..e'last loop
  17.     e(i) := FALSE;
  18.       end loop;
  19.       return e;
  20.    end vide;
  21.  
  22.    procedure ajouter(e : in out Ensemble; i : in Integer) is
  23.    begin
  24.     if(i >= 0 AND i <= e'last) then
  25.       e(i) := TRUE;
  26.     end if;
  27.    end ajouter;
  28.    
  29.    function estVide(e : Ensemble) return Boolean is
  30.     res : Boolean;
  31.     cpt : Integer;
  32.    begin
  33.     res := TRUE;
  34.     cpt := 0;
  35.    
  36.     while(res AND cpt <= e'last) loop
  37.       res := e(cpt);
  38.       cpt := cpt + 1;
  39.     end loop;
  40.    
  41.     return res;
  42.    end estVide;
  43.    
  44.    function estMembre(e : Ensemble; i : Integer) return Boolean is
  45.    begin
  46.     return e(i);
  47.    end estMembre;
  48.    
  49.    procedure putEns(e : Ensemble) is
  50.     alreadyPut : Boolean := FALSE;
  51.    begin
  52.     put("{");
  53.     for i in e'first..e'last loop
  54.       if(estMembre(e, i)) then
  55.    
  56.     if(alreadyPut) then
  57.       put(", ");
  58.     end if;
  59.    
  60.     put(i, 0);
  61.    
  62.     alreadyPut := TRUE;
  63.       end if;
  64.     end loop;
  65.     put("}");
  66.    
  67.    end putEns;
  68.    
  69.    procedure getEns(e : out Ensemble) is
  70.     number : Integer;
  71.    begin
  72.    
  73.     e := vide;
  74.    
  75.     put("Donnez les elements de l'ensemble entre 0 et ");
  76.     put(NB_ELEM-1, 0);
  77.     new_line;
  78.    
  79.     put("Terminez avec un nombre hors bornes");
  80.     new_line;
  81.    
  82.     get(number);
  83.    
  84.     while(number >= 0 AND number < NB_ELEM) loop
  85.      
  86.       ajouter(e, number);
  87.      
  88.       get(number);
  89.     end loop;
  90.    
  91.    end getEns;
  92.    
  93.    function intersection(e1, e2 : Ensemble) return Ensemble is
  94.     eRes : Ensemble;
  95.    begin
  96.      
  97.       for i in e1'first..e1'last loop
  98.     eRes(i) := (estMembre(e1, i) AND estMembre(e2, i));
  99.       end loop;
  100.      
  101.     return eRes;
  102.    end intersection;
  103.    
  104.   function complement(e : Ensemble) return Ensemble is
  105.     eRes : Ensemble;
  106.   begin
  107.    
  108.       for i in e'first..e'last loop
  109.     eRes(i) := not(estMembre(e, i));
  110.       end loop;
  111.    
  112.     return eRes;
  113.   end complement;
  114.  
  115.   function union(e1, e2 : Ensemble) return Ensemble is
  116.     eRes : Ensemble;
  117.   begin
  118.    
  119.       for i in e1'first..e1'last loop
  120.     eRes(i) := (estMembre(e1, i) OR estMembre(e2, i));
  121.       end loop;
  122.    
  123.     return eRes;
  124.   end union;
  125.  
  126.   function diff(e1, e2 : Ensemble) return Ensemble is
  127.     eRes : Ensemble;
  128.   begin
  129.    
  130.       for i in e1'first..e1'last loop
  131.     eRes(i) := (estMembre(e1, i) AND not(estMembre(e2, i)));
  132.       end loop;
  133.    
  134.     return eRes;
  135.   end diff;
  136.  
  137.   function estInclus(e1, e2 : Ensemble) return Boolean is
  138.     res : Boolean;
  139.     cpt : Integer;
  140.   begin
  141.     cpt := e1'first;
  142.     res : TRUE;
  143.     while(res AND cpt <= e1'last) loop
  144.      
  145.       if(estMembre(e1, i)) then
  146.     if(not(estMembre(e2, i)) then
  147.       res := FALSE;
  148.     end if;
  149.       end if;
  150.     end loop;
  151.    
  152.     return res;
  153.   end estInclus;
  154.  
  155.   function card(e : Ensemble) return Integer is
  156.     cnt : Integer;
  157.    begin
  158.    
  159.     return cnt;
  160.    end card;
  161.  
  162.    e1 : Ensemble := (True, False, True, False);
  163.  
  164. begin
  165.    putEns(e1);
  166.    
  167.    getEns(e1);
  168.    putEns(e1);
  169.    
  170. end tp7_ensembles_finis;
Advertisement
Add Comment
Please, Sign In to add comment