Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with Ada.text_io; use Ada.text_io;
- with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;
- procedure tp7_ensembles_finis is
- NB_ELEM : constant Integer := 4;
- TYPE Ensemble is ARRAY (Integer RANGE 0 .. NB_ELEM - 1) OF Boolean;
- ----------------------------------------------
- function vide return Ensemble is
- e : Ensemble;
- begin
- for i in e'first..e'last loop
- e(i) := FALSE;
- end loop;
- return e;
- end vide;
- procedure ajouter(e : in out Ensemble; i : in Integer) is
- begin
- if(i >= 0 AND i <= e'last) then
- e(i) := TRUE;
- end if;
- end ajouter;
- function estVide(e : Ensemble) return Boolean is
- res : Boolean;
- cpt : Integer;
- begin
- res := TRUE;
- cpt := 0;
- while(res AND cpt <= e'last) loop
- res := e(cpt);
- cpt := cpt + 1;
- end loop;
- return res;
- end estVide;
- function estMembre(e : Ensemble; i : Integer) return Boolean is
- begin
- return e(i);
- end estMembre;
- procedure putEns(e : Ensemble) is
- alreadyPut : Boolean := FALSE;
- begin
- put("{");
- for i in e'first..e'last loop
- if(estMembre(e, i)) then
- if(alreadyPut) then
- put(", ");
- end if;
- put(i, 0);
- alreadyPut := TRUE;
- end if;
- end loop;
- put("}");
- end putEns;
- procedure getEns(e : out Ensemble) is
- number : Integer;
- begin
- e := vide;
- put("Donnez les elements de l'ensemble entre 0 et ");
- put(NB_ELEM-1, 0);
- new_line;
- put("Terminez avec un nombre hors bornes");
- new_line;
- get(number);
- while(number >= 0 AND number < NB_ELEM) loop
- ajouter(e, number);
- get(number);
- end loop;
- end getEns;
- function intersection(e1, e2 : Ensemble) return Ensemble is
- eRes : Ensemble;
- begin
- for i in e1'first..e1'last loop
- eRes(i) := (estMembre(e1, i) AND estMembre(e2, i));
- end loop;
- return eRes;
- end intersection;
- function complement(e : Ensemble) return Ensemble is
- eRes : Ensemble;
- begin
- for i in e'first..e'last loop
- eRes(i) := not(estMembre(e, i));
- end loop;
- return eRes;
- end complement;
- function union(e1, e2 : Ensemble) return Ensemble is
- eRes : Ensemble;
- begin
- for i in e1'first..e1'last loop
- eRes(i) := (estMembre(e1, i) OR estMembre(e2, i));
- end loop;
- return eRes;
- end union;
- function diff(e1, e2 : Ensemble) return Ensemble is
- eRes : Ensemble;
- begin
- for i in e1'first..e1'last loop
- eRes(i) := (estMembre(e1, i) AND not(estMembre(e2, i)));
- end loop;
- return eRes;
- end diff;
- function estInclus(e1, e2 : Ensemble) return Boolean is
- res : Boolean;
- cpt : Integer;
- begin
- cpt := e1'first;
- res : TRUE;
- while(res AND cpt <= e1'last) loop
- if(estMembre(e1, i)) then
- if(not(estMembre(e2, i)) then
- res := FALSE;
- end if;
- end if;
- end loop;
- return res;
- end estInclus;
- function card(e : Ensemble) return Integer is
- cnt : Integer;
- begin
- return cnt;
- end card;
- e1 : Ensemble := (True, False, True, False);
- begin
- putEns(e1);
- getEns(e1);
- putEns(e1);
- end tp7_ensembles_finis;
Advertisement
Add Comment
Please, Sign In to add comment