Ds2 informatique

180 vues

Publié le

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
180
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Ds2 informatique

  1. 1. 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
  2. 2. Page 1 sur 9 Diriger par : Dr SALAMI & M. BINIZI
  3. 3. 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.
  4. 4. 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)
  5. 5. 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)
  6. 6. 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 }
  7. 7. 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
  8. 8. 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 }
  9. 9. Page 8 sur 9 III. APERCU DU PROGRAMME AL’EXECUTION
  10. 10. Page 9 sur 9 CONCLUSION La manipulationdescoordonnées desvecteursparpar

×