Soyez le premier à donner votre avis sur cette source.
Vue 20 302 fois - Téléchargée 482 fois
#include <stdio.h> #include <iostream.h> float produit(float, float, float, float); float norme(float, float, float); int main() { int fin; struct vecteur { float X; float Y; float Z; float n; }; vecteur V1, V2, V3; printf("Produit Vectoriel\\n\\nPremier vecteur\\nX: "); cin>>V1.X; printf("Y: "); cin>>V1.Y; printf("Z: "); cin>>V1.Z; V1.n = norme(V1.X,V1.Y,V1.Z); printf("Norme: %+Lf",V1.n); printf("\\n\\nSecond Vecteur\\nX: "); cin>>V2.X; printf("Y: "); cin>>V2.Y; printf("Z: "); cin>>V2.Z; V2.n = norme(V2.X,V2.Y,V2.Z); printf("Norme: %+Lf",V2.n); V3.X = produit(V1.Y, V2.Z, V1.Z, V2.Y); V3.Y = produit(V2.X, V1.Z, V2.Z, V1.X); V3.Z = produit(V1.X, V2.Y, V1.Y, V2.X); V3.n = norme(V3.X,V3.Y,V3.Z); printf("\\n\\nTroisieme Vecteur\\nX: %+Lf\\nY: %+Lf\\nZ: %+Lf\\nNorme: %+Lf\\n", V3.X, V3.Y, V3.Z,V3.n); cin>>fin; } float produit(float A, float B, float C, float D) { return (A*B-C*D); } float norme(float E, float F, float G) { return (sqrt((E*E)+(F*F)+(G*G))); }
6 janv. 2004 à 17:17
tu pourrais par exemple définir l'opérateur % (modulo) comme étant le remplaçant de x pour réaliser le produit vectoriel, puisqu'il me semble que % n'a pas de raison d'ê ds une classe de vecteur.
6 janv. 2004 à 11:41
En effet le produit vectoriel d'un vecteur par un autre vecteur donne une troisieme vecteur (d'où le nom de "vectoriel")
Alors que le produit scalaire d'un vecteur par un autre vecteur donne un scalaire [ie : un nombre] (d'où le nom de "scalaire")
Ceci-dit il est vrai qu'il serait souhaitable de passer à la Programmation Orientée Objet et de surcharger les opérateurs. La problème étant que l'opérateur x (produit vectoriel) et l'opérateur . (point) n'existent pas. Il y aura donc confusion dans les produits si on utilise *
5 janv. 2004 à 16:47
l'avantage c'est que tu pourras réellement les utiliser comme des objets complets. pour l'opérateur *, tu devras avoir deux surcharges: vecteur * vecteur qui donne un scalaire, et vecteur * scalaire qui donne un vecteur.
pour un exemple, regarde ma classe de vecteur (2D, désolé, j'avais pas besoin de mieux) qui m'a pas mal servie. tu devrais pvr trouver mes codes sources à partir de mon profil ;-)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.