Skip to content
Snippets Groups Projects
Commit 850f620a authored by DALI AYOUB's avatar DALI AYOUB :speech_balloon:
Browse files

maj td3

parent 5731b095
Branches
No related merge requests found
......@@ -6,18 +6,61 @@ Spec MULTIENS étend BASE Sorte MultiEns
Opérations :
creer_Multi : -> MultiEns //créé un MultiEns vide
inscrit : MultiEns S -> MultiEns //ajoute un élément de type S dans le MultiEns
insert : MultiEns S -> MultiEns //ajoute un élément de type S dans le MultiEns
suppr : MultiEns S -> MultiEns //supprime la premiere occurence d'un élément
nb_occ : //nombre d'occurence d'un élément
taille_tot : //taille totale des MultiEns
taille_distinct : //nombre d'éléments distincts
vide : //Est-ce que MultiEns est vide ?
nb_occ : MultiEns S -> Nat //nombre d'occurence d'un élément
taille_tot : MultiEns -> Nat //taille totale des MultiEns
taille_distinct : MultiEns -> Nat //nombre d'éléments distincts
vide : MultiEns -> Bool //Est-ce que MultiEns est vide ?
exist : MultiEns S -> Bool //Est-ce que S existe dans MultiEns ?
Axiomes : e :MultiEns, x,y : S
taille_distinct(créer_Multi()) = 0
taille_distinct(insert(e,x)) = si exist(e,x) alors taille_distinct(e) sinon 1+taille_distinct(e) fsi
nb_occ(insert(e,x),y) = si x==y alors nb_occ(e,y) + 1 sinon nb_occ(e, y) fsi
vide(créer_Multi()) = Vrai
vide(insert(e,x)) = Faux
exist(creer_Multi(), x) = Faux
exist(insert(e,x),y) = si x==y alors Vrai sinon exist(e,y) fsi
taille_tot(créer_Multi()) = 0
taille_tot(insert(e,x)) = taille_tot(e) + 1
suppr(insert(e,x),y)= si x==y alors e sinon insert(suppr(e,y),x) fsi
suppr(creer_Multi(), x) = créer_Multi()
typedef struct strMultiEns{
Nat * v; //le tableau
Nat n; //le nombre d'éléments dans le tableau
Nat taille; //la taille du tableau
} StrMultiEns, *MultiEns;
#Define TAILLE 10
MultiEns creer_Multi(){
MultiEns e = MALLOC(StrMultiEns); //pointeur vers une struct
e->n = 0;
e->taille = TAILLE;
e->v = MALLOC N(Nat, TAILLE);
return e;
}
MultiEns insert(MultiEns e, Nat x){
if (e->n == e->taille){
e->taille = e->taille + TAILLE;
e->v = REALLOC(e->v, Nat, e->taille);
}
e->v[e->n] = x;
e->n++;
return e;
}
MultiEns taille_tot(MultiEns e){
return e->n;
}
MultiEns vide(MultiEns e){
return e->n==0;
}
MultiEns taille_distinct(MultiEns e){
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment