Licence - spi..PC.3.Programmation - En.c C++.2020 2021.TD2 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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