Pascal_Testat_16
Home Nach oben

 

Home
Nach oben
Pascal_Testat_14
Pascal_Testat_15
Pascal_Testat_16
Pascal_Testat_17
Pascal_Testat_18
Pascal_Testat_20
Pascal_Testat_21
Pascal_Testat_22
Program Polarkoordinaten;

uses
 crt;

var
 x,bx,y,by,z,e:real;
 jn:char;

begin
 jn:='j';
 while (jn<>'n') and (jn<>'N') do begin
  clrscr;
  writeln ('Umwandlung komplexer Zahlen in Polarkoordinaten von Guido.Moser@gmx.de');
  writeln ('komplexe Zahl z:=x+iy');
  write ('Realteil     x = ');
  readln (x);
  write ('Imaginerteil y = ');
  readln (y);
  if x>0 then bx:=x else bx:=-x;{Hier könnte auch 'bx:=abs(x);' stehen}
  if y>0 then by:=y else by:=-y;{Hier könnte auch 'by:=abs(y);' stehen}
  if x=0 then begin
   z:=by;
   if y>0 then e:=pi/2 else e:=3*pi/2;
  end else begin
   if bx<by then begin
    z:=by*sqrt(1+sqr(x/y));
    e:=arctan(y/x);
   end else begin
    z:=bx*sqrt(1+sqr(y/x));
    e:=arctan(by/bx);
   end;
  end;
  if (y>0) and (x<0) then e:=e+pi/2;
  if (y<0) and (x<0) then e:=e+pi;
  if (y<0) and (x>0) then e:=e+3*pi/2;
  writeln ('Ergebnis = ',z,' * exp( i * ',e,')');
  write ('Weitere Umwandlungen (J/N)? ');
  read (jn);
 end;
end.