programme principal
- Code: Tout sélectionner
- « "Prod scalaire" {
 { "p.s.coordonee" 'sp1' }
 { "p.s.norme + somme" 'sp2' }
 { p.s.norme + COS 'sp3' } } 1 CHOOSE
 IF
 THEN EVAL CLLCD 1
 DISP 1 FREEZE
 END
 »
sp1
- Code: Tout sélectionner
- « "prod scalaire" { {
 "xv =" "Coord v1" 0
 } { "yv ="
 "Coord v1" 0 } {
 "zv =" "coord v1" 0
 } { "xt ="
 "Coord v2" 0 } {
 "yt =" "Coord v2" 0
 } { "zt ="
 "Coord v2" 0 } } { 3
 } { 0 0 0 0 0 0 } DUP
 INFORM
 IF
 THEN 0 2 ROLL OBJ->
 DROP -> s xv yv zv xt
 yt zt
 « xv xt * yv yt *
 + zv zt * + R->I 's'
 STO
 CASE s 0 ==
 THEN
 "PERPENDICULAIRE
 u.v ="
 s +
 END s 0 ‹
 THEN
 "u.v = xx'+yy'+zz':
 ="
 s +
 END
 END
 »
 »
sp2
- Code: Tout sélectionner
- « "prod scalaire"
 {{ "u" "norme de u" 0}
 { "v" "norme de v" 0 }
 { "w" "u+v" 0 }
 {1} {0 0 0} DUP
 INFORM
 IF
 THEN 0 2 ROLL OBJ->
 DROP -> e u v w
 « w 2 ^ u 2 ^ v 2 ^ + - 2 / 'e' STO
 CASE e 0 ==
 THEN
 "PERPENDICULAIRE
 u.v ="
 e +
 END e 0 ‹
 THEN
 "u.v = 1/2 [||u+v||² - (||u||²+||v||²)] :
 u.v ="
 e +
 END
 END
 »
 »
sp3
- Code: Tout sélectionner
- « prod scalaire
 { { "u" "norme de u" 0 }
 {"v" "norme de v" 0 }
 { "w" "angle (u;v)" 0 }
 {1} { 0 0 0 }
 DUP
 INFORM
 IF
 THEN 0 2 ROLL OBJ->
 DROP -> e u v w
 « u v w COS * * 'e' STO
 CASE e 0 ==
 THEN
 "PERPENDICULAIRE
 u.v ="
 e +
 END e 0 ‹
 THEN
 "u.v = ||u||*||v||*cos(w) :
 u.v ="
 e +
 END
 END
 »
 »


 
   
 
 
 
