Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Serie1 POO

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

Université Ibn Tofail S6- Filière Mécatronique

Ecole Nationale des Sciences Appliquées A.U. 2022/2023


Kénitra

Série N°1
Programmation Orientée Objets

Exercice 1 :
On veut réaliser une classe point3d permettant de définir des points dans l'espace à trois
dimensions. On vous propose la déclaration suivante :
class point3d
{float x, y, z ; // coordonnées cartésiennes du point
pubilc:
// constructeur (s)
// fonction d'affichage
// destructeur
};

1) On veut pouvoir déclarer un point, soit en fournissant explicitement ses trois coordonnées,
soit en fournissant aucune, auquel cas le point créé possédera trois coordonnées nulles.

Compléter la définition de la classe et écrire le ou les constructeur (s) correspondant (s) :


a) en utilisant des fonctions membre surdéfinies,
b) en utilisant une seule fonction membre "en ligne".

2) On veut cette fois pouvoir connaître, à tout moment, le nombre d'objets existants. Pour ce
faire, on se propose d'ajouter un membre donnée représentant un compteur du nombre d'objets
créés qui sera partagé par tous les objets de la classe.

a) Ecrire la nouvelle classe point3d en définissant les fonctions membre devant agir sur
ce compteur.
b) Ecrire une méthode de classe qui retourne le nombre d'objets crées et prévoir son
appel dans une fonction main.

Exercice 2:
A) On veut réaliser une classe complexe permettant de définir et de manipuler des nombres
complexes. Soit la déclaration suivante :
class complexe
{ float px; // partie réelle
float py; // partie imaginaire
public :
complexe(); // constructeur sans arguments
complexe(float, float); // constructeur à deux arguments
~complexe(); // destructeur
void afficher(); // fonction d’affichage
void modifier(float, float) ;// fonction de modification
1
};
1) Définir les fonctions membre déclarées dans la classe complexe.

2) Ecrire une fonction de test main (création, modification, affichage, objets statiques, objets
dynamique…).

3) Ajouter les fonctions membre suivantes :


- somme, pour calculer la somme de deux objets de la classe complexe.
- max, pour tester deux objets de type complexe. Elle doit retourner une référence sur
celui ayant un module maximal.

4) Etant donné un tableau de n objets de la classe complexe, écrire les fonctions ordinaires
suivantes :
- Som_tab, pour calculer la somme de tous les éléments du tableau;
- max_tab, pour retourner une référence sur l’objet de plus grand module.
- modif_tab pour modifier un élément du tableau.

5) Etant donné un tableau de n objets de type complexe, écrire la fonction main permettant :
- le calcul et l’affichage de la somme des éléments du tableau.
- l’affichage de l’objet ayant le plus grand module.

B) On propose de modifier la déclaration de la classe complexe précédente comme suit:


class complexe
{ float *px; // partie réelle
float *py; // partie imaginaire
public :
complexe(); // constructeur sans arguments
complexe(float, float); // constructeur à deux arguments
~complexe(); // destructeur
void afficher(); // fonction d’affichage
};
1) Définir les fonctions membre déclarées dans la classe complexe.

2) Ajouter le constructeur par recopie.

3) Surdéfinir l'opérateur d'affection.

4) Ecrire une fonction de test main.

Vous aimerez peut-être aussi