J'ai fait une classe vecteur3d qui permet de renvoyer le vecteur qui a la norme maximum. L'un est passage par référence, l'autre par valeur.
Qu'en pensez vous?



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
class vecteur3d {
private:
    float x,y,z;
public:
 
      vecteur3d(float,float,float);
      vecteur3d();
      int vecteurnormmax(vecteur3d);
};
 
vecteur3d::vecteur3d(){
x=y=z=0;}
 
vecteur3d::vecteur3d(float t,float tt,float ttt){
x=t;y=tt;z=ttt;}
 
int vecteur3d::vecteurnormmax(vecteur3d v){
double norme1= sqrt(x*x+y*y+z*z);
double norme2= sqrt(v.x*v.x+v.y*v.y+v.z*v.z);
int a=1;
if (norme2<norme1) a=2;
return a;
}
 
void main(){
vecteur3d X(2,1,3);
vecteur3d Y(1,4,2);
cout<<Y.vecteurnormmax(X);
 
}
Passage par référence:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
class vecteur3d {
private:
    float x,y,z;
public:
 
      vecteur3d(float,float,float);
      vecteur3d();
      int vecteurnormmax(vecteur3d * );
};
 
vecteur3d::vecteur3d(){
x=y=z=0;}
 
vecteur3d::vecteur3d(float t,float tt,float ttt){
x=t;y=tt;z=ttt;}
 
int vecteur3d::vecteurnormmax(vecteur3d *v){
double norme1= sqrt(this->x*this->x+this->y*this->y+this->z*this->z);
double norme2= sqrt(v->x*v->x+v->y*v->y+v->z*v->z);
int a=1;
if (norme2<norme1) a=2;
return a;
}
 
void main(){
vecteur3d X(2,1,3);
vecteur3d Y(1,4,2);
cout<<Y.vecteurnormmax(&X);
 
}