Liste exercices en langage C++ 

Exercices en langage C++ 

Exercice

En fait, on peut s’inspirer de ce qui a été fait dans l’exercice 93 pour réaliser une pile d’entiers en faisant en sorte que int soit remplacé par un paramètre de type. Voici ce que pourrait être la définition de notre patron de classes : #include #include // voir N.B. du paragraphe Nouvelles possibilités // d’entrées-sorties du chapitre 2 using namespace std ; template class stack_gene { int nmax ; // nombre maximum de la valeur de la pile int nelem ; // nombre courant de valeurs de la pile T * adv ; // pointeur sur les valeurs public : stack_gene (int = 20) ; // constructeur ~stack_gene () ; // destructeur stack_gene & operator << (T) ; // opérateur d’empilage stack_gene & operator >> (T &) ; // opérateur de dépilage // (attention T &) int operator ++ () ; // opérateur de test pile pleine Énoncé Créer un patron de classes nommé stack_gene, permettant de manipuler des piles dont les éléments sont de type quelconque. Ces derniers seront conservés dans un emplacement alloué dynamiquement et dont la dimension sera fournie au constructeur (il ne s’agira donc pas d’un paramètre expression du patron). La classe devra comporter les opérateurs suivants : • <<, tel que p<>, tel que p>>n place dans n la valeur du haut de la pile p, en la supprimant de la pile (si la pile est vide, il ne se passera rien) ; • ++, tel que ++p vale 1 si la pile p est pleine et 0 dans le cas contraire ; • –, tel que –p vale 1 si la pile p est vide et 0 dans le cas contraire ; • <<, tel que, flot étant un flot de sortie, flot << p affiche le contenu de la pile p sur le flot sous la forme : // valeur_1 valeur_2… valeur_n //. On supposera que les objets de type stack_gene ne seront jamais soumis à des transmissions par valeur ou à des affectations ; on ne cherchera donc pas à surdéfinir le constructeur par recopie ou l’opérateur d’affectation.

Exercice

Énoncé En s’inspirant de l’exercice 143, créer un patron de classes permettant de manipuler des vecteurs dynamiques dont les éléments sont de type quelconque.Voici la déclaration de notre patron : #include // voir N.B. du paragraphe Nouvelles possibilités // d’entrées-sorties du chapitre 2 using namespace std ; template class vect { int nelem ; // nombre de composantes du vecteur T * adr ; // pointeur sur partie dynamique public : vect (int n=1) ; // constructeur « usuel » vect (vect & v) ; // constructeur par recopie ~vect () ; // destructeur friend ostream & operator << (ostream &, vect &) ; vect operator = (vect & v) ; // surdéfinition opérateur affectation T & operator [] (int i) ; // surdef [] pour vect non constants T operator [] (int i) const ; // surdef [] pour vect constants } ; pi pleine : 0 vide : 1 pi = // 2 3 12 // pf = // 3.5 4.25 2 // haut de la pile pf = 2pf = // 3.5 4.25 // Énoncé En s’inspirant de l’exercice 143, créer un patron de classes permettant de manipuler des vecteurs dynamiques dont les éléments sont de type quelconque. exos_c++.book Page 310 Jeudi, 5. juillet 2007 11:10 11 © Éditions Eyrolles 311 chapitre n° 20 Exercices de synthèse Voici la définition des différentes fonctions membre : #include « vectgen.h » #include using namespace std ; template vect::vect (int n) // constructeur « usuel » { adr = new T [nelem = n] ; } template vect::vect (vect & v) // constructeur par recopie { adr = new T [nelem = v.nelem] ; int i ; for (i=0 ; i vect::~vect () { delete adr ; } template vect vect::operator = (vect & v) { if (this != &v) // on ne fait rien pour a=a { delete adr ; adr = new T [nelem = v.nelem] ; int i ; for (i=0 ; i T & vect::operator [] (int i) { return adr[i] ; } template T vect::operator [] (int i) const { return adr[i] ; } template ostream & operator << (ostream & sortie, vect & v) { sortie << « < » ; int i ; for (i=0 ; i » ; return sortie ; }

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *