M1103 Mini-feuille 2

Exercice 1 — Points géométriques

Nous allons suivre la consigne de bien séparer la déclaration et l’implémentation de fonctions. En particulier, nous allons étendre la définition de la classe Point2D dans le fichier point.h, mais nous allons mettre les implémentations de toutes les fonctions dans le fichier point.cpp.

Dans cet exercice nous allons écrire une classe pour modéliser des points géométriques 2-dimensionnels.

Téléchargez le fichier code.zip et ajoutez son contenu (les fichiers point.cpp, point.h, test.cpp, test.h, asserts.h) à un nouveau projet Code::Blocks.

a — Getters et setters

Il est prudent de mettre les membres x et y en privé pour empêcher un utilisateur de changer nos données sans passer par des fonctions membres (que nous contrôlons).

Nous commençons avec la représentation des données dont nous avons besoin. Nous rajoutons aussi des moyens pour lire et changer ces données.

Rajouter deux membres données x et y de type double à la classe Point2D.

Puis, rajouter une fonction membre get_x. Cette fonction ne prend pas d’arguments et renvoie un nombre réel (de type double en C++) égal à la valeur de x. Ensuite, rajouter une fonction membre set_x qui prend en argument un double et qui met à jour x à cette valeur.

Ajouter les fonctions get_y et set_y qui feront la même chose pour y.

Vous pouvez tester vos fonctions en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

b — La somme des coordonnées

Pour travailler avec les données de notre classe, nous allons calculer la somme des deux coordonnées de notre point géométrique.

Rajouter à la classe Point2D une fonction membre sum qui renvoie la somme des coordonnées x et y.

Vous pouvez tester votre fonction en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

c — La fonction multiply

La fonction que nous allons écrire maintenant met à jour les deux coordonnées du point en même temps.

Rajouter une fonction multiply à votre classe Point2D. Elle prend en argument un double et met à jour les coordonnées x et y de l’objet courant en multipliant les anciennes valeurs par l’argument.

Vous pouvez tester votre fonction en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

d — Constructeurs

Nous allons maintenant rajouter deux constructeurs à notre classe pour pouvoir initialiser les coordonnées directement lors de la déclaration d’une variable, sans passer par les setters.

Rajouter un constructeur sans argument à Point2D qui initialise les deux coordonnées x et y à zéro.

Rajouter un deuxième constructeur qui prend deux arguments de type double pour initialiser x et y respectivement.

Vous pouvez tester vos constructeurs en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

retour au site web du cours