Vous êtes sur la page 1sur 2

Licence Sciences Pour l'Ingénieur & Licence

Physique, Chimie 3ème année


Programmation en C/C++ - TD n°2
Année Universitaire 2020-2021

Exercice n°1 : classe, fonctions membres, transmission par valeur, transmission par adresse.

Soit la classe "vecteur3d" suivante :

class vecteur3d
{
float x, y, z ;
public :
vecteur3d (float, float, float);
};

vecteur3d :: vecteur3d (float c1, float c2, float c3)


{
x = c1 ; y = c2 ; z = c3 ;
}

Introduire dans la classe vecteur3d proposée une fonction membre "coincide" permettant de
savoir si deux objets de type vecteur3d ont mêmes composantes. Si v1 et v2 sont deux
vecteurs, comment peut s’écrire leur test de coïncidence ? Prévoir également une fonction
d’affichage ("affichage") des trois composantes d’un objet de type vecteur3d, une fonction
permettant d’obtenir la somme de deux vecteurs ("somme") et, enfin, une fonction fournissant
le résultat du produit scalaire de deux vecteurs ("prodscalaire"). Lors de l'appel des fonctions
"coincide", "somme" et "prodscalaire", le premier argument sera reçu implicitement alors que
le second sera transmis par référence (td2_exo1a.cpp) ou par adresse (td2_exo1b.cpp). Ecrire
dans la fonction principale main un test des différentes fonctions membres de la classe.

Exercice n°2 : classe, fonctions membres, constructeur.

Réaliser une classe "point" permettant de manipuler un point dans le plan. On prévoira :

̶ Un constructeur, portant le même nom que la classe et recevant en arguments les


coordonnées (de type float) d’un point,
̶ Une première fonction membre "deplace" effectuant une translation définie par ses
deux arguments (de type float),
̶ Une deuxième fonction membre "affiche" permettant l'affichage des coordonnées
cartésiennes du point.

Les coordonnées du point seront des données membres privées. On écrira séparément :

̶ Un fichier source précisant la déclaration de la classe (point1.h),


̶ Un fichier source pour sa définition (td2_exo2.cpp).

Ecrire, par ailleurs, un programme d’essai (main) déclarant un point, l’affichant, le déplaçant et
l’affichant à nouveau.

Page 1 sur 2
Exercice n°3 : classe, fonctions membres, encapsulation des données.

Réaliser une classe "point", analogue à celle réalisée au cours de l’exercice n°2, mais ne
comportant pas de fonction "affiche". Pour respecter le principe d’encapsulation des données,
prévoir deux fonctions membres publiques (nommées "abscisse" et "ordonnee") fournissant
en retour l’abscisse et l’ordonnée d’un point. Prévoir un fichier source précisant la déclaration
de la classe (point2.h) et adapter le programme d’essai de l’exercice précédent pour qu’il
fonctionne avec cette nouvelle classe (td2_exo3.cpp).

Page 2 sur 2

Vous aimerez peut-être aussi