Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 1
Département d’Informatique
Faculté des sciences
Agadir 2019/2020
Examen session Normale Que génère le programme suivant ?
Info5 POO SMA5 main() { jeudi 19 décembre 2019 A *a, *c, *d; B b(20,30), *e; Question de cours a = new A(10); A) C’est quoi le principe d’encapsulation c = new A(15); e = new B(2,3);} B) Définir le polymorphisme : donner un exemple Exercice 3 Exercice 1 soit le profgramme suivant #include <iostream> #include <cmaths> #include <iostream> Using namespace std ; Using namespace std ; class Complex{ main() { …}; int x[3] = { 3, 6, 11 }; void main() { Le programme génère le int y = 4; int &z = y; Complex i; résultat suivant: cout << "1," << x[0] <<","<< x[1] <<","<< y <<","<< z<< endl; Complex j(1,-2); 2.1 + 3.15 i int * p = &x; int * p = x; *p = 5; Complex k(2.1,3.15); Le module de k : 3.78583 cout << "2," << x[0] <<","<< x[1] <<","<< y<<","<< z << endl; k.afficheComplex(); int * q = &y; int * q = y;*q = 7; cout<<"Le module de k : « <<k.getModule()<<endl; 3.1 + 1.15 i cout << "3," << x[0] <<","<< x[1] <<","<< y <<","<< z <<endl; i = j + k; 5.4 + -5.05 i *(++p) = 8; i.afficheComplex();Complex p = i*j; L’imaginaire de p : 3.15 cout <<"5," << x[0] <<","<< x[1] <<","<< y <<","<< z << endl; p.afficheComplex(); //=============== z =*(x+2)-2; cout<<"limaginair de p : "<<p.get_Im()<<endl; le module d’un Complex = cout << "6," << x[0] <<","<< x[1] <<","<< y <<","<< z <<endl; } } sqrt(re*re+im*im) 1. Trouver et supprimer les 2 instructions incorrectes. 2. Donner la sortie du programme. 1) Ecrire la classe Complex pour avoir les résultats affichés ci-dessus. Utiliser deux fichiers : complex.h pour les déclarations et complexe.cpp Exercice 2 pour le développement des méthodes. Soit les deux classes suivantes : (le constructeur av paramètre, les accesseurs, les opérateur + et * …. ;) 2) Surcharger l’opérateur << pour permettre l’affichage directement avec : class A { class B : public A { cout<<k ; (n’oublier pas de vérifier l’accessibilité aux attributs privés) protected : int i; private : int j; public : public : Exercice 4 Fonction template B(int k, int n = 1) : A(k) a- Ecrire une fonction Template Max avec 2 paramètres, permettant de A(int k) { j=n ; retourner le maximum de deux variables quelque soit leurs type {i=k ; Écrire un petit programme test (main) cout<<" Constructeur de A "<<i<<"\n"; cout<<" Constructeur de B "<<j<<"\n"; }}; b- Quelle librairie devrons-nous inclure pour manipuler les fonctions Template }};