Exercice 83
Énoncé
Créer deux classes (dont les membres donnée sont privés) :
• l’une, nommée vect, permettant de représenter des vecteurs à 3 composantes de
type double ; elle comportera un constructeur et une fonction membre
d’affichage ;
• l’autre, nommée matrice, permettant de représenter des matrices carrées de
dimension 3 x 3 ; elle comportera un constructeur avec un argument (adresse
d’un tableau de 3 x 3 valeurs) qui initialisera la matrice avec les valeurs
correspondantes.
Réaliser une fonction indépendante prod permettant de fournir le vecteur
correspondant au produit d’une matrice par un vecteur. Écrire un petit programme de
test. On fournira séparément les deux déclarations de chacune des classes, leurs deux
définitions, la définition de prod et le programme de test.
Ici, pour nous faciliter l’écriture, nous représenterons les composantes d’un vecteur par
un tableau à trois éléments et les valeurs d’une matrice par un tableau à 2 indices. La
fonction de calcul du produit d’un vecteur par une matrice doit obligatoirement pouvoir
accéder aux données des deux classes, ce qui signifie qu’elle devra être déclarée
« amie » dans chacune de ces deux classes.
En ce qui concerne ses deux arguments (de type vect et mat), nous avons choisi la
transmission la plus efficace, c’est-à-dire la transmission par référence. Quant au
résultat (de type vect), il doit obligatoirement être renvoyé par valeur (nous en
reparlerons dans la définition de prod).
Voici la déclaration de la classe vect :
/* fichier vect1.h */
class matrice ; // pour pouvoir compiler la déclaration de vect
class vect
{
double v[3] ; // vecteur à 3 composantes
public :
vect (double v1=0, double v2=0, double v3=0) // constructeur
{ v[0] = v1 ; v[1]=v2 ; v[2]=v3 ; }
friend vect prod (const matrice &, const vect &) ;// fonction amie
// indépendante
192
Énoncé
Créer deux classes (dont les membres donnée sont privés) :
• l’une, nommée vect, permettant de représenter des vecteurs à 3 composantes de
type double ; elle comportera un constructeur et une fonction membre
d’affichage ;
• l’autre, nommée matrice, permettant de représenter des matrices carrées de
dimension 3 x 3 ; elle comportera un constructeur avec un argument (adresse
d’un tableau de 3 x 3 valeurs) qui initialisera la matrice avec les valeurs
correspondantes.
Réaliser une fonction indépendante prod permettant de fournir le vecteur
correspondant au produit d’une matrice par un vecteur. Écrire un petit programme de
test. On fournira séparément les deux déclarations de chacune des classes, leurs deux
définitions, la définition de prod et le programme de test.
Ici, pour nous faciliter l’écriture, nous représenterons les composantes d’un vecteur par
un tableau à trois éléments et les valeurs d’une matrice par un tableau à 2 indices. La
fonction de calcul du produit d’un vecteur par une matrice doit obligatoirement pouvoir
accéder aux données des deux classes, ce qui signifie qu’elle devra être déclarée
« amie » dans chacune de ces deux classes.
En ce qui concerne ses deux arguments (de type vect et mat), nous avons choisi la
transmission la plus efficace, c’est-à-dire la transmission par référence. Quant au
résultat (de type vect), il doit obligatoirement être renvoyé par valeur (nous en
reparlerons dans la définition de prod).
Voici la déclaration de la classe vect :
/* fichier vect1.h */
class matrice ; // pour pouvoir compiler la déclaration de vect
class vect
{
double v[3] ; // vecteur à 3 composantes
public :
vect (double v1=0, double v2=0, double v3=0) // constructeur
{ v[0] = v1 ; v[1]=v2 ; v[2]=v3 ; }
friend vect prod (const matrice &, const vect &) ;// fonction amie
// indépendante
192
