Page 0 sur 9
Filière et option: FL3-GC
Rédiger par : AFANOU Kossi Joachim
AGBOH Jean-Paul
KALIPE Max-Wisdom
KANGNI Assiongbon
NAPO Kpandjapou Lynda
RAPPORT D’INFORMATIQUE
THEME : PROGRAMMATION ORIENTE OBJET
Page 1 sur 9
Diriger par : Dr SALAMI & M. BINIZI
Page 2 sur 9
INTRODUCTION
Au cours de notre formation nous avons appris a programmé en langage C++. Pour mieux
maitriser cette programmation, nous avons décidé de nous intéresser à la programmation
orientée objet (P.O.O.). C’est ainsi que nous avons décidé d’écrire un programme en (P.O.O.) qui
peut manipuler les coordonnées des vecteurs dans l’espace. Dans ce rapport, nous présenterons
le programme à l’exécution et le code d’implémentation.
I. PRESENTATION DU PROGRAMME AL’EXECUTION
A. GENERALITES SUR LA PROGRAMMATION ORIENTE OBJET(P.O.O.)
Le langage C est un langage procédural, c’est-à-dire un langage permettant de définir des
données grâce à des variables, et des traitements grâce aux fonctions. L’apport principal
du langage C++ par rapport au langage C est l’intégration des concepts "objet", afin d’en
faire un langage orienté objet. Les approches orientées objets (programmation,
conception, ...) sont nombreuses et s’appliquent à de nombreux domaines autre que
l’informatique (par exemple en Ingénierie, l’électronique, l’automatisme, ...).
De nombreux outils sont disponibles pour représenter et concevoir en orienté objet.
L’UML (Unified Modeling Language, que l’on peut traduire par « langage de modélisation
unifié ») est particulièrement bien adapté à cette tâche, notamment grâce aux
diagrammes de classes, d’objets pour décrire les constituants (…) d’un système.
B. PRESENTATION DE PROGRAMME
Ce programme à l’exécution va implémenter la somme et la différence de 2 vecteurs en
faisant la somme ou la différence de leurs coordonnées, le produit de 2 vecteurs en
calculant sa norme grâce aux coordonnées des vecteurs. Il implémentera aussi les opposés
des vecteurs en déterminant l’opposée des vecteurs en questions. Il implémentera
également la translation d’un ou des vecteurs par rapport à un autre tout en manipulant
les coordonnés des vecteurs. Bref tous les types d’opérations possibles sur les vecteurs
seront implémentés par ce programme.
Page 3 sur 9
II. CODES D’IMPLEMENTATION
A. DECLARATION DE LA CLASSE
1 #include <iostream>
2 #include <conio.h>
3 #include <cmath>
4
5
6
7 using namespace std;
8
9 class vecteur
10 {
11 private : float x,y,z;
12
13 public : vecteur ();
14 vecteur (float );
15 vecteur (float, float );
16 vecteur (float, float, float );
17 vecteur operator + (vecteur);
18 vecteur operator - (vecteur);
19 vecteur opp (vecteur);
20 vecteur bar (vecteur ,vecteur);
21 float operator * (vecteur);
22 vecteur operator / (vecteur);
23 vecteur trans (float, float, float);
24 void af();
25 };
B. LES METHODES DES OPERATIONS
28 vecteur :: vecteur()
29 {
30 x=0; y=0; z=0;
31 }
32
33 vecteur :: vecteur(float u)
Page 4 sur 9
34 {
35 x=u; y=0; z=0;
36 }
37
38 vecteur :: vecteur(float u, float v)
39 {
40 x=u; y=v; z=0;
41 }
42
43 vecteur :: vecteur(float u, float v, float w)
44 {
45 x=u; y=v; z=w;
46 }
47
48 vecteur vecteur :: operator +(vecteur i)
49 {
50 vecteur a;
51 a.x = x+i.x;
52 a.y = y+i.y;
53 a.z = z+i.z;
54 return (a);
55 }
56
57 vecteur vecteur :: operator -(vecteur i)
58 {
59 vecteur a;
60 a.x = x-i.x;
61 a.y = y-i.y;
62 a.z = z-i.z;
63 return (a);
64 }
65
66 float vecteur :: operator *(vecteur i)
67 {
68 float b;
69 b = x*i.x + y*i.y+ z*i.z;
70 return (b);
71 }
72
73
74 vecteur vecteur :: operator /(vecteur i)
Page 5 sur 9
75 {
76 vecteur a;
77 a.x = y*i.z-i.y*z;
78 a.y = i.x*z-x*i.z;
79 a.z = x*i.y-i.x*y;
80 return (a);
81 }
82
83 vecteur vecteur :: trans (float s, float t, float
u)
84 {
85 vecteur i;
86 i.x = x+s;
87 i.y = y+t;
88 i.z = z+u;
89 return (i);
90 }
91
92 vecteur vecteur::bar (vecteur r, vecteur s)
93 {
94 vecteur j;
95 float a=2,b=3;
96 j.x=(a*r.x+b*s.x)/(a+b);
97 j.y=(a*r.y+b*s.y)/(a+b);
98 j.z=0;
99 return(j);
100 }
101
102 vecteur vecteur::opp (vecteur h)
103 {
104 vecteur d;
105 d.x=-h.x;
106 d.y=-h.y;
107 d.z=-h.z;
108 return (d);
109 }
110 void vecteur :: af()
111 {
112 cout<<"coordonnees : ( "<<x<<" , "<<y<<" ,
"<<z<<" )."<<endl;
113 }
Page 6 sur 9
C. LA FONCTION MAIN
115 int main(int argc, char** argv)
116 {
122 vecteur I,J,K,L,g,e,m,r,s,t,u,v,w;
123 vecteur d, a(7,-4), b(2,6,-4), c(-1,4,9);
124 float Q,p=0,l=2,n=-1,C;
125 cout<<" soit les vecteurs A, B, C dans l'ordre
"<<endl;cout<<" vecteur A de ";
126 a.af(); cout<<" vecteur B de "; b.af();
cout<<" vecteur C de "; c.af();
127 cout<<endl;
128 cout<<" la somme du vecteur A,B, et A,C dans
l'ordre donne: "<<endl;
129 g=a+b;
130 d=a+c;
131 cout<<" vecteur g = A + B de ";
132 g.af();
133 cout<<" vecteur d = A + C de ";
134 d.af();
135 cout<<endl;
136 cout<<" la difference entre les vecteurs A,B
et A,C dans l'ordre donne: "<<endl;
137 J=a-b;
138 L=a-c;
139 cout<<" vecteur j = A - B de ";
140 J.af();
141 cout<<" vecteur L = A - C de ";
142 L.af();
143 cout<<endl;
144 cout<<" la norme du vecteur A*B et du vecteur
A*C dans l'ordre donne: "<<endl;
145 Q=a*b;
146 C=a*c;
147 cout<<"la norme de A B est donné par Q =
"<<Q<<endl;
148 cout<<"la norme de A B est donné par C =
"<<C<<endl;
149 cout<<endl;
150 cout<<" cette fonction ci donne l'oppose d'un
Page 7 sur 9
vecteur donne "<<endl<<"l'oppose de tous les vecteurs
que nous avons"<<endl<<" depuis le debut dans l'ordre
nous donne: "<<endl;
151 I=I.opp(a);
152 K=K.opp(b);
153 e=e.opp(c);
154 m=m.opp(g);
155 r=r.opp(d);
156 s=s.opp(J);
157 t=t.opp(L);
158 cout<<" vecteur A' de ";
159 I.af();cout<<" vecteur B' de ";
160 K.af();cout<<" vecteur C' de ";
161 e.af();cout<<" vecteur g' de ";
162 m.af();cout<<" vecteur d' de ";
163 r.af();cout<<" vecteur j' de ";
164 s.af();cout<<" vecteur L' de ";
165 t.af();
166 cout<<endl;
167 cout<<" la translation des vecteurs de départ
A,B,C par un autre"<<endl<<" vecteur de coordonnees (0,
2 ,-1) dans l'ordre donne: "<<endl;
168 u=a.trans(p,l,n);
169 v=b.trans(p,l,n);
170 w=c.trans(p,l,n);
171 cout<<" vecteur A'' de ";u.af();
172 cout<<" vecteur B'' de ";v.af();
173 cout<<" vecteur C'' de ";w.af();
179
180 getch();
181
182 }
Page 8 sur 9
III. APERCU DU PROGRAMME AL’EXECUTION
Page 9 sur 9
CONCLUSION
La manipulationdescoordonnées desvecteursparpar

Ds2 informatique

  • 1.
    Page 0 sur9 Filière et option: FL3-GC Rédiger par : AFANOU Kossi Joachim AGBOH Jean-Paul KALIPE Max-Wisdom KANGNI Assiongbon NAPO Kpandjapou Lynda RAPPORT D’INFORMATIQUE THEME : PROGRAMMATION ORIENTE OBJET
  • 2.
    Page 1 sur9 Diriger par : Dr SALAMI & M. BINIZI
  • 3.
    Page 2 sur9 INTRODUCTION Au cours de notre formation nous avons appris a programmé en langage C++. Pour mieux maitriser cette programmation, nous avons décidé de nous intéresser à la programmation orientée objet (P.O.O.). C’est ainsi que nous avons décidé d’écrire un programme en (P.O.O.) qui peut manipuler les coordonnées des vecteurs dans l’espace. Dans ce rapport, nous présenterons le programme à l’exécution et le code d’implémentation. I. PRESENTATION DU PROGRAMME AL’EXECUTION A. GENERALITES SUR LA PROGRAMMATION ORIENTE OBJET(P.O.O.) Le langage C est un langage procédural, c’est-à-dire un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L’apport principal du langage C++ par rapport au langage C est l’intégration des concepts "objet", afin d’en faire un langage orienté objet. Les approches orientées objets (programmation, conception, ...) sont nombreuses et s’appliquent à de nombreux domaines autre que l’informatique (par exemple en Ingénierie, l’électronique, l’automatisme, ...). De nombreux outils sont disponibles pour représenter et concevoir en orienté objet. L’UML (Unified Modeling Language, que l’on peut traduire par « langage de modélisation unifié ») est particulièrement bien adapté à cette tâche, notamment grâce aux diagrammes de classes, d’objets pour décrire les constituants (…) d’un système. B. PRESENTATION DE PROGRAMME Ce programme à l’exécution va implémenter la somme et la différence de 2 vecteurs en faisant la somme ou la différence de leurs coordonnées, le produit de 2 vecteurs en calculant sa norme grâce aux coordonnées des vecteurs. Il implémentera aussi les opposés des vecteurs en déterminant l’opposée des vecteurs en questions. Il implémentera également la translation d’un ou des vecteurs par rapport à un autre tout en manipulant les coordonnés des vecteurs. Bref tous les types d’opérations possibles sur les vecteurs seront implémentés par ce programme.
  • 4.
    Page 3 sur9 II. CODES D’IMPLEMENTATION A. DECLARATION DE LA CLASSE 1 #include <iostream> 2 #include <conio.h> 3 #include <cmath> 4 5 6 7 using namespace std; 8 9 class vecteur 10 { 11 private : float x,y,z; 12 13 public : vecteur (); 14 vecteur (float ); 15 vecteur (float, float ); 16 vecteur (float, float, float ); 17 vecteur operator + (vecteur); 18 vecteur operator - (vecteur); 19 vecteur opp (vecteur); 20 vecteur bar (vecteur ,vecteur); 21 float operator * (vecteur); 22 vecteur operator / (vecteur); 23 vecteur trans (float, float, float); 24 void af(); 25 }; B. LES METHODES DES OPERATIONS 28 vecteur :: vecteur() 29 { 30 x=0; y=0; z=0; 31 } 32 33 vecteur :: vecteur(float u)
  • 5.
    Page 4 sur9 34 { 35 x=u; y=0; z=0; 36 } 37 38 vecteur :: vecteur(float u, float v) 39 { 40 x=u; y=v; z=0; 41 } 42 43 vecteur :: vecteur(float u, float v, float w) 44 { 45 x=u; y=v; z=w; 46 } 47 48 vecteur vecteur :: operator +(vecteur i) 49 { 50 vecteur a; 51 a.x = x+i.x; 52 a.y = y+i.y; 53 a.z = z+i.z; 54 return (a); 55 } 56 57 vecteur vecteur :: operator -(vecteur i) 58 { 59 vecteur a; 60 a.x = x-i.x; 61 a.y = y-i.y; 62 a.z = z-i.z; 63 return (a); 64 } 65 66 float vecteur :: operator *(vecteur i) 67 { 68 float b; 69 b = x*i.x + y*i.y+ z*i.z; 70 return (b); 71 } 72 73 74 vecteur vecteur :: operator /(vecteur i)
  • 6.
    Page 5 sur9 75 { 76 vecteur a; 77 a.x = y*i.z-i.y*z; 78 a.y = i.x*z-x*i.z; 79 a.z = x*i.y-i.x*y; 80 return (a); 81 } 82 83 vecteur vecteur :: trans (float s, float t, float u) 84 { 85 vecteur i; 86 i.x = x+s; 87 i.y = y+t; 88 i.z = z+u; 89 return (i); 90 } 91 92 vecteur vecteur::bar (vecteur r, vecteur s) 93 { 94 vecteur j; 95 float a=2,b=3; 96 j.x=(a*r.x+b*s.x)/(a+b); 97 j.y=(a*r.y+b*s.y)/(a+b); 98 j.z=0; 99 return(j); 100 } 101 102 vecteur vecteur::opp (vecteur h) 103 { 104 vecteur d; 105 d.x=-h.x; 106 d.y=-h.y; 107 d.z=-h.z; 108 return (d); 109 } 110 void vecteur :: af() 111 { 112 cout<<"coordonnees : ( "<<x<<" , "<<y<<" , "<<z<<" )."<<endl; 113 }
  • 7.
    Page 6 sur9 C. LA FONCTION MAIN 115 int main(int argc, char** argv) 116 { 122 vecteur I,J,K,L,g,e,m,r,s,t,u,v,w; 123 vecteur d, a(7,-4), b(2,6,-4), c(-1,4,9); 124 float Q,p=0,l=2,n=-1,C; 125 cout<<" soit les vecteurs A, B, C dans l'ordre "<<endl;cout<<" vecteur A de "; 126 a.af(); cout<<" vecteur B de "; b.af(); cout<<" vecteur C de "; c.af(); 127 cout<<endl; 128 cout<<" la somme du vecteur A,B, et A,C dans l'ordre donne: "<<endl; 129 g=a+b; 130 d=a+c; 131 cout<<" vecteur g = A + B de "; 132 g.af(); 133 cout<<" vecteur d = A + C de "; 134 d.af(); 135 cout<<endl; 136 cout<<" la difference entre les vecteurs A,B et A,C dans l'ordre donne: "<<endl; 137 J=a-b; 138 L=a-c; 139 cout<<" vecteur j = A - B de "; 140 J.af(); 141 cout<<" vecteur L = A - C de "; 142 L.af(); 143 cout<<endl; 144 cout<<" la norme du vecteur A*B et du vecteur A*C dans l'ordre donne: "<<endl; 145 Q=a*b; 146 C=a*c; 147 cout<<"la norme de A B est donné par Q = "<<Q<<endl; 148 cout<<"la norme de A B est donné par C = "<<C<<endl; 149 cout<<endl; 150 cout<<" cette fonction ci donne l'oppose d'un
  • 8.
    Page 7 sur9 vecteur donne "<<endl<<"l'oppose de tous les vecteurs que nous avons"<<endl<<" depuis le debut dans l'ordre nous donne: "<<endl; 151 I=I.opp(a); 152 K=K.opp(b); 153 e=e.opp(c); 154 m=m.opp(g); 155 r=r.opp(d); 156 s=s.opp(J); 157 t=t.opp(L); 158 cout<<" vecteur A' de "; 159 I.af();cout<<" vecteur B' de "; 160 K.af();cout<<" vecteur C' de "; 161 e.af();cout<<" vecteur g' de "; 162 m.af();cout<<" vecteur d' de "; 163 r.af();cout<<" vecteur j' de "; 164 s.af();cout<<" vecteur L' de "; 165 t.af(); 166 cout<<endl; 167 cout<<" la translation des vecteurs de départ A,B,C par un autre"<<endl<<" vecteur de coordonnees (0, 2 ,-1) dans l'ordre donne: "<<endl; 168 u=a.trans(p,l,n); 169 v=b.trans(p,l,n); 170 w=c.trans(p,l,n); 171 cout<<" vecteur A'' de ";u.af(); 172 cout<<" vecteur B'' de ";v.af(); 173 cout<<" vecteur C'' de ";w.af(); 179 180 getch(); 181 182 }
  • 9.
    Page 8 sur9 III. APERCU DU PROGRAMME AL’EXECUTION
  • 10.
    Page 9 sur9 CONCLUSION La manipulationdescoordonnées desvecteursparpar