Напишите программу пожалуйста Определить полярные координаты точки, заданные декартовыми координатами (x,y) по формулам f=arctg(x/y), r=√x^2+y^2. При вычислении угла @ необходимо учесть, что значение х может быть равно нулю, а ...

Напишите программу пожалуйста Определить полярные координаты точки, заданные декартовыми координатами (x,y) по формулам f=arctg(x/y), r=√x^2+y^2. При вычислении угла @ необходимо учесть, что значение х может быть равно нулю, а угол может находиться в различных четвертях.
Гость
Ответ(ы) на вопрос:
Гость
[latex]\phi=\begin {cases} arctg( \frac{y}{x}), \ x>0 \\ arctg( \frac{y}{x})+\pi, \ x<0,y \geq 0 \\ arctg( \frac{y}{x})-\pi, \ x<0,y<0 \\ \frac{\pi}{2}, \ x=0,y>0 \\ -\frac{\pi}{2}, \ x=0,y<0 \\ 0, \ x=0,y=0 \end {cases}[/latex] procedure Polar(x, y: real; var r, f: real); begin   r := sqrt(sqr(x) + sqr(y));   if x = 0 then     if y = 0 then f := 0     else     if y > 0 then f := Pi / 2 else f := -Pi / 2   else begin     f := arctan(y / x);     if x < 0 then       if y >= 0 then f := f + Pi else f := f - Pi   end end; { тестовое решение } var   R, Fi: real; begin   Polar(1, 1, R, Fi);   Writeln('(+1;+1) -> (', R, ';', Fi, ')');   Polar(1, -1, R, Fi);   Writeln('(+1;-1) -> (', R, ';', Fi, ')');   Polar(-1, 1, R, Fi);   Writeln('(-1;+1) -> (', R, ';', Fi, ')');   Polar(-1, -1, R, Fi);   Writeln('(-1;-1) -> (', R, ';', Fi, ')');   Polar(0, 1, R, Fi);   Writeln('(0;+1)  -> (', R, ';', Fi, ')');   Polar(0, -1, R, Fi);   Writeln('(0;-1)  -> (', R, ';', Fi, ')');   Polar(0, 0, R, Fi);   Writeln('(0;0)   -> (', R, ';', Fi, ')'); end. Тестовое решение: (+1;+1) -> (1.4142135623731;0.785398163397448) (+1;-1) -> (1.4142135623731;-0.785398163397448) (-1;+1) -> (1.4142135623731;2.35619449019234) (-1;-1) -> (1.4142135623731;-2.35619449019234) (0;+1)  -> (1;1.5707963267949) (0;-1)  -> (1;-1.5707963267949) (0;0)   -> (0;0)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы