Algorithme pour transformer des coordonnées cartésiennes (x,y)
en coordonnées polaires (r,t):
/|
/ |
/ |
/ |
r / | y
/ |
/ |
/ t |
/________|
x
r2 = x2+y2
t = arctg (y/x) auquel il faut ajouter pi si x < 0 (cf quadrant)
sauf si x = 0, t = pi/2 si y > 0
t = - pi/2 si y < 0
t n'existe pas si y = 0
réel x, y, r, t
écrire "Introduisez l'abscisse x:"
lire x
écrire "Introduisez l'ordonnée y:"
lire y
r <-- (x2+y2)1/2
si x=0 alors si y>0 alors écrire "r=", r ," et t= ", pi/2
sinon si y<0 alors écrire "r=", r ," et t= ", -pi/2
sinon écrire "r=", r ," et t n'existe pas."
fsi
fsi
sinon t <-- arctg (y/x)
si x<0 alors t <-- t + pi
fsi
écrire "r=", r ," et t= ", t
fsi
PROGRAM Cartesien_Polaire;
VAR x, y, r, t, pi : REAL;
BEGIN
WRITE('Introduisez l''abscisse x:');
READLN(x);
WRITE('Introduisez l''ordonnée y:');
READLN(y);
pi := 3.1416;
r := SQRT(x*x+y*y);
IF x=0 THEN IF y>0 THEN WRITELN('r=', r:5:2 ,' et t= ', pi/2:5:2)
ELSE IF y<0 THEN WRITELN('r=', r:5:2 ,' et t= ', -pi/2:5:2)
ELSE WRITELN('r=', r:5:2 ,' et t n''existe pas.')
ELSE BEGIN
t := ARCTAN(y/x);
IF x<0 THEN t := t + pi;
WRITELN('r=', r:5:2 ,' et t= ', t:5:2)
END;
END.