Produit vectoriel

Soyez le premier à donner votre avis sur cette source.

Vue 15 804 fois - Téléchargée 361 fois

Description

ce programme peut etre utile dans les cours d'etude de construction pour faire un simple calcul vectoriel ou calculer un moment...

Source / Exemple :


#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)));
  }

Conclusion :


merci de me donnez vos impressions et remarques

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
je te conseil de plutôt écrire une classe Vecteur et de surcharger les opérateurs (+, -, /, *, +=, -=, *=, /=, ==, !=)

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 ;-)
garslouche
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
-
Kirua, je crois que tu confonds produit scalaire et produit vectoriel.

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 *
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
j'ai dit une bêtise donc


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.

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.