Exercice 150 (77 revisité)
Ancien énoncé
1. Réaliser une classe nommée set_int permettant de manipuler des ensembles de
nombres entiers. On devra pouvoir réaliser sur un tel ensemble les opérations
classiques suivantes : lui ajouter un nouvel élément, connaître son cardinal
(nombre d’éléments), savoir si un entier donné lui appartient.
Ici, on conservera les différents éléments de l’ensemble dans un tableau alloué
dynamiquement par le constructeur. Un argument (auquel on pourra prévoir une
valeur par défaut) lui précisera le nombre maximal d’éléments de l’ensemble.
2. Écrire, en outre, un programme (main) utilisant la classe set_int pour déterminer le
nombre d’entiers différents contenus dans un tableau d’entiers lus en données.
3. Que faudrait-il faire pour qu’un objet du type set_int puisse être transmis par
valeur, soit comme argument d’appel, soit comme valeur de retour d’une
fonction ?
Commentaires
On peut utiliser le composant set, à condition de ne plus préciser qu’on conserve
les éléments dans un tableau dynamique. La question 3 n’a plus de raison d’être car la
classe set dispose d’un constructeur par recopie.
Voici ce que devient l’exemple de programme demandé dans la seconde question :
#include
#include // pour la classe set
using namespace std ;
main()
{ set ens ; // voir remarque ci-après
cout << "donnez 20 entiers \n" ;
int i, n ;
for (i=0 ; i<20 ; i++)
{ cin >> n ;
ens.insert (n) ;
}
cout << "il y a : " << ens.size() << " entiers differents\n" ;
}
375
Ancien énoncé
1. Réaliser une classe nommée set_int permettant de manipuler des ensembles de
nombres entiers. On devra pouvoir réaliser sur un tel ensemble les opérations
classiques suivantes : lui ajouter un nouvel élément, connaître son cardinal
(nombre d’éléments), savoir si un entier donné lui appartient.
Ici, on conservera les différents éléments de l’ensemble dans un tableau alloué
dynamiquement par le constructeur. Un argument (auquel on pourra prévoir une
valeur par défaut) lui précisera le nombre maximal d’éléments de l’ensemble.
2. Écrire, en outre, un programme (main) utilisant la classe set_int pour déterminer le
nombre d’entiers différents contenus dans un tableau d’entiers lus en données.
3. Que faudrait-il faire pour qu’un objet du type set_int puisse être transmis par
valeur, soit comme argument d’appel, soit comme valeur de retour d’une
fonction ?
Commentaires
On peut utiliser le composant set
les éléments dans un tableau dynamique. La question 3 n’a plus de raison d’être car la
classe set dispose d’un constructeur par recopie.
Voici ce que devient l’exemple de programme demandé dans la seconde question :
#include
#include
using namespace std ;
main()
{ set
cout << "donnez 20 entiers \n" ;
int i, n ;
for (i=0 ; i<20 ; i++)
{ cin >> n ;
ens.insert (n) ;
}
cout << "il y a : " << ens.size() << " entiers differents\n" ;
}
375
