public class Produits3D { ///////////////////////////////////////////////// /* Type agrege de stockage d'une direction */ /* dans un espace trois dimensions */ /* a coordonnees reelles */ static class Direction3D { double x = 0.0; double y = 0.0; double z = 0.0; }; /* Calcul du produit scalaire de 2 Direction3D */ static double produitScalaire(Direction3D d1, Direction3D d2) { double res = d1.x*d2.x+d1.y*d2.y+d1.z*d2.z; return res; } /* Calcul du produit vectoriel */ /* de 2 Direction3D */ static Direction3D produitVectoriel(Direction3D d1, Direction3D d2) { Direction3D res = new Direction3D(); res.x = d1.y*d2.z-d1.z*d2.y; res.y = d1.z*d2.x-d1.x*d2.z; res.z = d1.x*d2.y-d1.y*d2.x; return res; } /* Programme principal */ public static void main(String [] args) { Direction3D d1 = new Direction3D(); Direction3D d2 = new Direction3D(); double ps; Direction3D pv; Ecran.afficherln("Veuillez saisir la premiere direction"); d1.x = Clavier.saisirDouble(); d1.y = Clavier.saisirDouble(); d1.z = Clavier.saisirDouble(); Ecran.afficherln("Veuillez saisir la seconde direction"); d2.x = Clavier.saisirDouble(); d2.y = Clavier.saisirDouble(); d2.z = Clavier.saisirDouble(); ps = produitScalaire(d1,d2); pv = produitVectoriel(d1,d2); Ecran.afficherln("Produit scalaire : ",ps); Ecran.afficherln("Produit vectoriel : ",pv.x,", ",pv.y,", ",pv.z); } ///////////////////////////////////////////////// }