Op´erations ensemblistes [cx04] - Exercice
Karine Zampieri, St´ephane Rivi`ere, B´eatrice Amerein-Soltner
Unisciel algoprog Version 24 octobre 2016
Table des mati`eres
1 Repr´esentation d’un ensemble 3
1.1 Type Ensemble ................................ 3
1.2 Proc´edures utilitaires ............................. 3
2 Appartenance 4
2.1 Ensembles non tri´es .............................. 4
2.2 Ensembles tri´es ................................ 4
2.3 Proc´edure de test ............................... 5
3 Union 6
3.1 Ensembles non tri´es .............................. 6
3.2 Ensembles tri´es ................................ 6
3.3 Proc´edure de test ............................... 7
4 Intersection 8
4.1 Ensembles non tri´es .............................. 8
4.2 Ensembles tri´es ................................ 8
4.3 Proc´edure de test ............................... 9
5 Diff´erence 10
5.1 Ensembles non tri´es .............................. 10
5.2 Ensembles tri´es ................................ 10
5.3 Proc´edure de test ............................... 11
C++ - Op´erations ensemblistes (TP)
Mots-Cl´es Complexit´e des algorithmes
Requis Axiomatique imp´erative sauf Fichiers, R´ecursivit´e des actions
Difficult´e ••◦ (4 h)
1
Unisciel algoprog – Op´erations ensemblistes [cx04] 2
Objectif
Cet exercice r´ealise les op´erations ensemblistes (union, intersection, diff´erence), les en-
sembles ´etant repr´esenes par des tableaux. Certains ensembles seront tri´es et d’autres
pas. Toutes les solutions propos´ees doivent ˆetre r´ecursives.
Unisciel algoprog – Op´erations ensemblistes [cx04] 3
1 Repr´esentation d’un ensemble
1.1 Type Ensemble
D´efinissez la constante MAXELEMS=100 (taille maximale des tableaux), le type Element
´equivalent `a un entier et le type Ensemble, structure m´emorisant :
Un tableau elems de taille maximale MAXELEMS contenant les Element.
Un entier taille stockant le nombre effectif d’´el´ements de l’ensemble.
´
Ecrivez une proedure initialiserEns(A) qui initialise un Ensemble A `a l’ensemble
vide.
´
Ecrivez une fonction ieme(A,k) qui renvoie le k-eme Element d’un Ensemble A.
´
Ecrivez une proedure ajouterEns(A,x) qui ajoute un Element x `a un Ensemble A.
´
Ecrivez une proedure afficherEns(A) qui affiche les ´el´ements d’un Ensemble A.
1.2 Proc´edures utilitaires
´
Ecrivez une proedure creerEns1(A) qui cr´ee un Ensemble A avec les ´el´ements {1,6,7}.
´
Ecrivez une proedure creerEns2(A) qui cr´ee un Ensemble A avec les ´el´ements {1,3,4,7,10,12}.
...(suite page suivante)...
Unisciel algoprog – Op´erations ensemblistes [cx04] 4
2 Appartenance
Objectif
Cette section r´ealise un algorithme Appartenance(A,x) qui teste et renvoie Vrai si un
´el´ement xappartient `a un Ensemble A,Faux sinon.
2.1 Ensembles non tri´es
Dans le cas des Ensembles non tri´es,
´
Ecrivez un tel algorithme appartientSeq(A,x).
Aide m´ethodologique
´
Ecrivez une fonction r´ecursive appartientSeqRec(A,k,x).
Quelle est sa complexit´e pire-cas en nombre de comparaisons ?
2.2 Ensembles tri´es
Dans le cas des Ensembles tri´es (dans l’ordre croissant),
´
Ecrivez un tel algorithme appartientLin(A,x).
Aide m´ethodologique
´
Ecrivez une fonction r´ecursive appartientLinRec(A,k,x).
Quelle est sa complexit´e pire-cas en nombre de comparaisons ?
Pour am´eliorer votre algorithme, ´ecrivez un algorithme appartientDicho(A,x) qui utilise
une recherche dichotomique.
Unisciel algoprog – Op´erations ensemblistes [cx04] 5
Aide m´ethodologique
´
Ecrivez une fonction r´ecursive appartientDichoRec(A,inf,sup,x).
Quelle est la complexit´e de votre nouvel algorithme ?
2.3 Proc´edure de test
´
Ecrivez une proedure test_appartient qui cr´ee un Ensemble A puis teste les proc´edures.
Testez.
...(suite page suivante)...
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !