Académique Documents
Professionnel Documents
Culture Documents
Note : /20
PARTIEL
Partie_1 (18pts) : Pour chaque question, cochez la ou les bonne(s) réponse(s) proposée(s).
Q.1 : Quelles seront les valeurs de n et p après exécution de la ligne d'instruction suivante :
int n=5, p=10; while(++n<=14) n+=4*p; ++p; cout<<"n= "<<n<<", p= "<<p<<endl ;
a) n=6, p=40 b) n=45, p=12 c) autre : n= .... , p= ..... d) n=47, p=11
Q.2 : Quelle est la portée par défaut des attributs et des méthodes déclarées en P.0.0 ?
a) accessibles dans une classe quelconque ;
b) accessibles par une classe amie à la classe où ils sont définis ;
c) accessibles dans la classe où ils sont définis ;
d) accessibles dans une classe dérivée.
class point {
float abs; float ord;
public :
point(float , float ){ abs = x; ord = y;}
point& operator=( const point &autre ) {
if (*this != &autre ) { abs = autre.abs;
ord = autre.ord; }
return this; }
bool operator==(const point &autre) {
if (this->abs == autre.abs && this->ord == autre.ord) return true ;
else return ; }
void affiche(){ cout<<"Le point ayant les coordonnees (x= "<<abs<<", y= "<<ord<<")"<<endl; }
}
int main(){
point A = new point(5.4, 15.0);
point B = new point(2.3, 1.5);
A ->affiche();
(*B). affiche();
if(A == B) cout << "A et B sont confondues\n";
else cout << "A et B ne sont pas confondues\n";
A = B;
A ->affiche();
(*B). affiche();
if(A == B) cout << "A et B sont confondues\n";
else cout << "A et B ne sont pas confondues\n";
}
P a g e 1a | 4
Département d’électronique, Masters 1 Académiques (S1) 12 Février 2018
Durée : 1h30mn Programmation Orientée Objet en C++ (UEM1.1)
Q.8 : Parmi les déclarations suivantes, lesquelles sont valides pour déclarer un tableau en C++ ?
P a g e 2a | 4
Département d’électronique, Masters 1 Académiques (S1) 12 Février 2018
Durée : 1h30mn Programmation Orientée Objet en C++ (UEM1.1)
Q.15 : Le mécanisme permettant de rendre les membres d'une classe invisibles à d’autres classes est :
P a g e 3a | 4
Département d’électronique, Masters 1 Académiques (S1) 12 Février 2018
Durée : 1h30mn Programmation Orientée Objet en C++ (UEM1.1)
Partie_2 (02pts) : On veut calculer le produit d'une matrice par un vecteur en utilisant une méthode
amie. Pour ce faire, on vous propose les deux classes vecteur et matrice, définies ci-dessous.
Compléter le programme, en définissant une méthode amie aux deux classes, indépendante qui retourne un
vecteur correspondant au produit d’une matrice par un vecteur, dont le prototype vecteur produit (matrice,
vecteur) ;
///////////////// Programme : Produit d'une matrice par un vecteur. ////////////////////
#include<iostream>
using namespace std;
class matrice ;
class vecteur {
int v[5];
public:
vecteur(int tab[5]){ for (int i=0; i<5; i++) v[i] = tab[i]; }
void affiche(){ for (int i=0; i<5; i++) cout<<v[i]<<" " ; cout<<endl; }
friend vecteur produit (matrice, vecteur); //Déclaration d'amitié pour la méthode indépendante
};
class matrice {
int m[5][5];
public:
matrice(int tab[5][5]) { for(int i=0;i<5;i++) for(int j=0;j<5;j++) m[i][j] = tab[i][j]; }
void affiche() { for(int i=0;i<5;i++) {
for(int j=0;j<5;j++) cout<<m[i][j]<<" ";
cout<<endl; }
}
friend vecteur produit (matrice, vecteur) ; //Déclaration d'amitié pour la méthode indépendante
};
vecteur produit (matrice M, vecteur V){ /*Définition de la méthode indépendante*/
……………………………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………………………………………….
……………………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………………………
} //////////////////////////////////////// FIN ////////////////////////////////////
P a g e 4a | 4