Exam POO Sma5 Norm

Télécharger au format pdf ou txt
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
}};

Vous aimerez peut-être aussi