Programmation pour le calcul scientifique Ann´ee : 2018-2019
Formation : L3 Ing´enieurie Math´ematique
TP6 : Classes
1 Classes
1. Dans un nouveau fichier, d´efinissez la classepoint, qui contient comme donn´ees priv´ees deux r´eels xety.
2. D´efinissez une variable de la classepoint(= une instance de la classepoint). Essayer de modifier directement les valeurs de ces donn´ees. Que se passe-t-il ?
3. D´efinir les fonctions suivantes comme membres publics de la classepoint: double get_x() {return x;}
double& get_y() {return y;}
Testez-les en utilisant tout `a tour les commandes : A.get_y() = 1.;
A.get_x() = 1.;
Que constatez-vous ? Comment l’expliquez-vous ?
4. Modifiez l’une des deux fonctions afin de pouvoir modifier les valeurs des deux donn´ees de la classe point.
5. D´efinissez undoubleet affectez-luiA.x: que se passe-t-il ? D´eclarez (temporairement : juste pour cette question) publiques les donn´ees de la classe et re-testez la question pr´ec´edente.
6. D´eclarez maintenant ces fonctions comme priv´ees et essayez de recompiler : que se passe-t-il ? 7. Ecrire une fonction membre publiqueaffiche, qui ne renvoie rien mais affiche les donn´ees d’une
instance de la classepoint. Testez-la pour la valider.
8. Ecrire une fonction membre publique translation, prend en argument deux r´eels vx et vy et renvoie unpoint qui est le r´esultat de la translation d’unpointpar le vecteur (vx, vy). Testez-la pour la valider.
9. Ecrivez une fonction publiqueadresse, qui renvoie un pointeur vers l’adresse d’une instance de la classe, en utilisant le pointeur this. Testez-la en cr´eant un pointeur avec cette fonction et en affichant la valeur de l’adresse dupointconsid´er´e.
10. Comment modifier les valeurs des donn´ees correspondant `a cette adresse en utilisant le pointeur ainsi cr´e´e ?
11. Ecrire une fonction amieaddition qui prend en arguments deux instances de la classepoint et retourne comme r´esultat une instance qui est la somme des deux pr´ec´edentes. Testez-la pour la valider.
12. Structurez votre code en trois fichiers : un .cpp contenant le programme principal, un .cpp conte- nant les fonctions et un .h contenant les informations n´ecessaires.
13. Modifiez le makefile du TP pr´ec´edent afin qu’il g´en`ere aussi l’ex´ecutable du code que vous venez d’´ecrire.
2 Matrices creuses
Reprendre la correction du TP2, exercice sur les matrices creuses, et l’adapter en cr´eant une classe de matrice creuses et les fonctions associ´ees.
1