Pages

jeudi 6 février 2014

Exercices corrigés c++ : Les fonctions amies en programmation C++

Exercice 1 :

Soit une classe vecteur 3d ayant 3 données membres privées, de type entier, les composantes du vecteur (x,y,z). Elle a un constructeur permettant d’initialiser les données membres.
Ecrire une fonction indépendante, coincide, amie de la classe vecteur3d, permettant de
savoir si 2 vecteurs ont mêmes composantes.
Si v1 et v2 désignent 2 vecteurs de type vecteur3d, écrire le programme qui permet de
tester l’égalité de ces 2 vecteurs.

Correction exercice 1:

#include <iostream.h>
class vecteur3d{
int x;
int y;
int z;
public:
vecteur3d(int a=0,int b=0, int c=0);
friend void coincide (vecteur3d p, vecteur3d q);
};
vecteur3d::vecteur3d(int a,int b,int c){
x=a;
y=b;
z=c;
}
void coincide(vecteur3d p, vecteur3d q){
if(p.x==q.x && p.y==q.y && p.z==q.z){
cout<<"Les 2 vecteurs sont égaux"<<endl;
}
else cout<<"FOIREUX"<<endl;
}
void main(){
vecteur3d v1(3,2,5);
vecteur3d v2(3,4,5);
coincide(v1,v2);
}

Exercice 2 :

Créer 2 classe (dont les membres données 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 affiche.
- L’autre nommée matrice, permettant de représenter des matrices carrées de dimension 3x3 ;
      elle comportera un constructeur avec un argument (adresse d’un tableau de 3x3 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.
Ecrire un programme de test.
Fournir les 2 déclarations de chacune des classes, leurs définitions, la définition de prod et le programme de test.

Correction exercice 2:

#include <iostream.h>
#include <string.h>
class matrice;
class vect{
double x;
double y;
double z;
public:
vect(double a=0,double b=0,double c=0);
void affiche();
friend vect prod(matrice b, vect a);
};
class matrice{
double tableau[3][3];
public :
//friend class a;
matrice(double tab[3][3]=0);
friend vect prod(matrice b, vect a);
};
vect::vect(double a,double b, double c){
x=a;
y=b;
z=c;
}
void vect::affiche(){
cout<<"X= "<<x<<endl;
cout<<"Y= "<<y<<endl;
cout<<"Z= "<<z<<endl;
}
matrice::matrice(double tab[3][3]){
tableau[3][3]=tab[3][3];
tableau[0][0]=1;
tableau[0][1]=2;
tableau[0][2]=3;
tableau[1][0]=4;
tableau[1][1]=5;
tableau[2][1]=6;
tableau[0][2]=7;
tableau[1][2]=8;
tableau[2][2]=9;
}
vect prod(matrice b, vect a){
vect c;
c.x=(b.tableau[0][0]*a.x)+(b.tableau[0][1]*a.y)+(b.tableau[0][2]*a.z);
c.y=(b.tableau[1][0]*a.x)+(b.tableau[1][1]*a.y)+(b.tableau[1][2]*a.z);
c.z=(b.tableau[2][0]*a.x)+(b.tableau[2][1]*a.y)+(b.tableau[2][2]*a.z);
cout<<"le résultat de la multiplication est
:"<<c.x<<","<<c.y<<","<<c.z<<endl;
return c;
}
void main(){
vect vecteur(1,1,1);
matrice mat;
vect res;
res=prod(mat,vecteur);
}


1 commentaire:

Partenaires

Computers Blogs
Ajoutez votre site

Contactez-nous

Nom

E-mail *

Message *

Tous droits resérvés-www.exercices-corriges.com Seo Blogger Templates