Serie TP3 (SMA - S5
Transcription
Serie TP3 (SMA - S5
1 Université Mohammed Ier Faculté des Sciences Dépt. de Maths et Info. Oujda - MAROC - Année universitaire 2014/2015 Filière SMA (Semestre 5) Module : POO : C++ Série TP N° 3 EXERCICE 1 Réaliser une classe vecteur3d permettant de manipuler des vecteurs à 3 composantes (de type float). On y prévoira : • un constructeur, avec des valeurs par défaut (0), • une fonction void affiche () permet l’affichage des 3 composantes du vecteur, sous la forme : < composante1, composante2, composante3 > • une fonction vecteur3d somme (vecteur3d &) permettant d’obtenir la somme de 2 vecteurs ; • une fonction float prodscal (vecteur3d &) permettant d’obtenir le produit scalaire de 2 vecteurs. On écrira un petit programme utilisant la classe ainsi réalisée. EXERCICE 2 Soit la classe vecteur3d définie par : class vecteur3d { float x, y, z ; public : vecteur3d (float c1=0.0, float c2=0.0, float c3=0.0) { x = c1 ; y = c2 ; z = c3 ; } ..... } ; Écrire une fonction indépendante coincide, amie de la classe vecteur3d, permettant de savoir si deux vecteurs ont les mêmes composantes. Ajouter un programme principal qui permet de tester s’ils coincident ou non les vecteurs suivant a(2,0) , b(2) et c . EXERCICE 3 Définir et compléter la classe point comme suit : class point { int x, y ; public : point (int abs=0, int ord=0) // constructeur usuel { …… cout << "++ point " << x << " " << y << endl ; } 1 2 point (point & p) // constructeur de recopie { …….. cout << "CR point " << x << " " << y << endl ; } } ; Définir et compléter la classe dérivée pointcol comme suit : class pointcol : public point { int coul ; public : // constructeur usuel pointcol (int abs=0, int ord=0, { …….. cout << "++ pointcol " << coul } // constructeur de recopie pointcol (pointcol & p) : point { …… cout << "CR pointcol " << coul } } ; int cl=1) : point (abs, ord) << endl ; (p) << endl ; Définir la fonction suivante void fct (pointcol pc) { cout << "*** entree dans fct ***" << endl ; } Ajouter un programme principal qui permet de déclarer un objet a de la classe pointcol faire appel de fct avec a transmis par valeur EXERCICE 4 Créer une classe personnel comprenant trois données membres (nom, position, salaire), un constructeur initialisant les données membres et une fonction affiche_personnel qui affiche les informations sur le personnel. Créer une classe patron dérivant publiquement de la classe personnel et ayant deux données membres (bonus_annuel, marque de voiture de fonction) , un constructeur initialisant les données membres et une fonction affiche_patron qui affiche les informations sur le patron (entant que membre du personnel et patron). Créer un programme permettant de tester ces classes. 2