05.04.2014, 23:01 | #1 (permalink) |
Member
Регистрация: 02.03.2014
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Турбо Паскаль. Файлы, работа с текстом
код программы: 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. Заранее спасибо |
05.04.2014, 23:01 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пока в вашей теме нет ответов можете заняться прочтением схожих тем Турбо Паскаль. Файлы, работа с текстом Турбо Паскаль. Тип запись Турбо Паскаль. Рекурсии Программа в Турбо-Паскаль 7,0 Два примера через турбо-Паскаль Турбо Паскаль |
07.04.2014, 10:05 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Вот с файлами. Естественно, имена файлов, а также пути к ним можете поправить сообразно своему вкусу. Код:
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; Var C:Cartez; P:Polar; f1,f2:Text; IOR:Integer; Begin {$I-} Assign(f1,'D:\Cart.txt'); Reset(f1); Assign(f2,'D:\Polar.txt'); Rewrite(f2); Read(f1,C.x,C.y); IOR:=IOResult; If IOR=0 then begin Cart2Pol(C,P); Writeln(f2,'Radius = ',P.R:0:2); if P.fi=10 then Writeln(f2,'Poliarnii ugol - Ne opredelen') else Writeln(f2,'Poliarnii ugol = ',P.fi:0:2); end else begin writeln('Oshibka chtenija vhodnyh dannyh'); Readln end; Close(f1); Close(f2); End. |
|
07.04.2014, 20:59 | #5 (permalink) |
Member
Регистрация: 02.03.2014
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо большое)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
турбо паскаль |
|
|