нужна помощь. требуется переделать программу, представленную ниже, под работу с файлами. то есть считывание из файла координат х, у и запись в файл полярного угла и радиуса
код программы:
Uses crt;
Type
Cartez=Record
x,y:real;
end;
Polar=Record
R,fi:real;
end;
Procedure Cart2Pol(Cr:Cartez; var Pl:Polar);
begin
Pl.R:=sqrt(sqr(Cr.x)+sqr(Cr.y));
with Cr do
if (x>0) and (y>=0) then Pl.fi:=Arctan(y/x) else
if (x=0) and (y>0) then Pl.fi:=Pi/2 else
if (x<0) and (y>=0) then Pl.fi:=Pi+Arctan(y/x) else
if (x<0) and (y<0) then Pl.fi:=-Pi+Arctan(y/x) else
if (x=0) and (y<0) then Pl.fi:=-Pi/2 else
if (x>0) and (y<0) then Pl.fi:=Arctan(y/x) else
Pl.fi:=10;
end;
{VVOD PEREMENNOY}
procedure vvod(var a:real); {A - PARAMETR-PEREMENNAYA DLYA HRANENIYA VVEDENNOGO ZNACHENIYA}
var ST:string; {ST - STROKA DLYA NEPOSREDSTVENNOGO VVODA}
E:integer; {E - PEREMENNAYA DLYA HRANENIYA KODOV OSHIBOK}
begin
repeat
readln(ST);
val(ST,A,E);
if E<>0 then begin
writeln('Necorrectnoe znachenie ''',ST,'''. Povtorite vvod:')
end
until E=0;
end;
Var
C:Cartez;
P:Polar;
Begin
clrscr;
writeln ('Programma perevodit koordinati tochki is dekartovoi sistemi v poliarnuy');
with C do begin
writeln('Vvedite x:');
vvod(x);
writeln('Vvedite y:');
vvod(y)
end;
Cart2Pol(C,P);
Writeln ('Polyarnie koordinati:');
Writeln('Radius = ',P.R:0:2);
if P.fi=10 then
Writeln('Poliarnii ugol - Ne opredelen')
else
Writeln('Poliarnii ugol = ',P.fi{/Pi*180}:0:2);
Readln
End.
Заранее спасибо