La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Structures de données et algorithmes – TP2 Maria-Iuliana Dascalu

Présentations similaires


Présentation au sujet: "Structures de données et algorithmes – TP2 Maria-Iuliana Dascalu"— Transcription de la présentation:

1 Structures de données et algorithmes – TP2 Maria-Iuliana Dascalu

2 Objectifs pour aujourdhui Transition de C (TP1) à C++ (TP2) Struct vs. classes en C++ Templates

3 Exercice 1 Implémentez une fonction pour trier un tableau de 5 éléments de type double. Utilisez un mécanisme d'échange, qui doit être mis en œuvre dans une autre fonction. (Tip: Passage par valeur/passage par référence)

4 Exercice 2 Ajoutez à classe complex de nouvelles méthodes pour l'ajout, la division et la multiplication de nombres complexes.

5 #include class complex { public: complex();// constructor without params complex(double param_re, double param_im){//constructor // use to initialize the members of the class with values and to allocates memory for some members this->re=param_re;//re=param_re; this->im=param_im;//im=param_im; } double getRe(){//method: getter return re; } double getIm(){//method return im; } complex complex_conjugate() {//method complex conjugate(re,-im);//object of type complex return conjugate; } private: double re; double im; }; int main(){ complex number(2,3);// number is an object and complex is a class cout<<"The complex number is: "<

6 Template class template class KeyStorage { public: int key; T member; //a generic member: we don't know its type when creating the class }; int main() { //Everything happens to compile time, not to run time //The compiler analyses the way in which you use the class KeyStorage keyElement1; KeyStorage keyElement2; return 0; }

7 Exercice 3 Faisez un constructeur, un destructeur, un getter et un setter pour la classe de modèle KeyStorage.

8 Aussi bon… #include template class KeyStorage { public: int key; Tip1 member1; //a generic member: we don't know its type when creating the class Tip2 member2; }; int main() { KeyStorage keyElement1; keyElement1.key=1; keyElement1.member1 = 6; keyElement1.member2 = 's'; cout<

9 Function Templates template T getMax(T a, T b) { return a > b ? a : b; } …………………………………………………….. getMax (2, 3); getMax (3.2, 4.6);

10 Exercice 4 Considérons la fonction suivante qui échange deux objets: template void swap(T& ob1, T& ob2) { T aux = ob1; ob1 = ob2; ob2 = aux; } Mettez en oeuvre une fonction qui trie un tableau de N = 5 éléments de type double à l'aide de la fonction ci- dessus.

11 Exercice 5 Mettez en oeuvre la structure suivante nommée Point: struct Point { //public: int coord_x, coord_y;//the coordinates of a point void reset() //places the point into the origin { coord_x = coord_y = 0; } void moveX(int x); //moves the point horizontally with x positions void moveY(int y); // moves the point vertically with y positions void moveXY(int x, int y); // moves the point horizontally and vertically }; Faisez un programme dans lequel on mettre en oeuvre le déplacement d'un point à l'intérieur les coordonnées d'un rectangle ayant les dimensions 1 x N (N étant donné par l'utilisateur), en partant de l'origine. Compilez et exécutez l'application! Ensuite, remplacez struct avec classe et faisez la même chose!

12 Exercice 6 Considérons la structure de Ex.5 et la fonction suivante qui échange deux objets de type Point! void Schimba(Point &A, Point &B) { int x = A.coord_x; A.coord_x = B.coord_x; B.coord_x = x; int y = A.coord_y; A.coord_y = B.coord_y; B.coord_y = y; } Créez un programme qui trie 5 points, en prenant en compte la distance de l'origine.

13 Devoir Terminez les exercices donnés en classe!!! Ecrivez un programme en C++ dans laquelle vous définissez une classe nommée BankAccount qui contient les opérations bancaires usuelles (dépôt, retrait, afficher équilibre, propriétaire d'affichage). Testez la classe.


Télécharger ppt "Structures de données et algorithmes – TP2 Maria-Iuliana Dascalu"

Présentations similaires


Annonces Google