1 IMPLEMENTATION MODULE MathTracer;
3 FROM MathLib0 IMPORT sqrt;
7 SCALAIRE= REAL; (* pour passer éventuellement en LONGREAL *)
9 (* Le type VECTEUR sera utilisé pour les vecteurs mais aussi pour les
11 VECTEUR= ARRAY[0..2] OF SCALAIRE;*)
13 PROCEDURE Carre(x: SCALAIRE): SCALAIRE;
18 (* Normalise ramène la norme d'un vecteur à 1 *)
20 (* - Vecteur: Vecteur que l'on doit normaliser *)
22 PROCEDURE Normalise(VAR Vecteur: VECTEUR);
26 Module:=sqrt(Vecteur[0]*Vecteur[0]+
27 Vecteur[1]*Vecteur[1]+
28 Vecteur[2]*Vecteur[2]);
30 Vecteur[0]:=Vecteur[0]/Module;
31 Vecteur[1]:=Vecteur[1]/Module;
32 Vecteur[2]:=Vecteur[2]/Module;
36 (* Homotetie fait subir une homotetie vectorielle à un vecteur *)
38 (* - Coefficient: Facteur de l'homotétie
39 - Vecteur: Vecteur qui subit l'opération *)
41 PROCEDURE Homotetie(Coefficient: SCALAIRE; VAR Vecteur: VECTEUR);
43 Vecteur[0]:=Vecteur[0]*Coefficient;
44 Vecteur[1]:=Vecteur[1]*Coefficient;
45 Vecteur[2]:=Vecteur[2]*Coefficient;
48 PROCEDURE SoustraitVecteur(VAR V1, V2: VECTEUR);
50 V2[0]:=V2[0]-V1[0]; V2[1]:=V2[1]-V1[1]; V2[2]:=V2[2]-V1[2];
53 PROCEDURE Norme(VAR V: VECTEUR): SCALAIRE;
55 RETURN sqrt(V[0]*V[0]+V[1]*V[1]+V[2]*V[2]);
58 PROCEDURE Distance(VAR V1, V2: VECTEUR): SCALAIRE;
60 RETURN sqrt((V1[0]-V2[0])*(V1[0]-V2[0])+
61 (V1[1]-V2[1])*(V1[1]-V2[1])+
62 (V1[2]-V2[2])*(V1[2]-V2[2]));
65 PROCEDURE Parite(x: SCALAIRE): BOOLEAN;
68 RETURN NOT(ODD(LONGINT(x)));
70 RETURN ODD(LONGINT(x));
74 PROCEDURE Ent(x: SCALAIRE): SCALAIRE;
77 RETURN REAL(LONGINT(x));
79 RETURN REAL(LONGINT(x))-1.0;
83 PROCEDURE Frac(x: SCALAIRE): SCALAIRE;
88 PROCEDURE Abs(x: SCALAIRE): SCALAIRE;