Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Помогите переделать программу в код паскаль,чтобы она была без классов (http://www.tehnari.ru/f43/t50906/)

mrbadj 25.04.2011 20:28

Помогите переделать программу в код паскаль,чтобы она была без классов
 
program Project2;
{$APPTYPE CONSOLE}

uses
SysUtils;

Type otr=class
private
x1,y1,x2,y2,X,Y, dl,u:real;
{координаты концов отрезка, его длина и угол с Ох в градусах}
public
constructor create(x1,y1,x2,y2:real);
Function Get_dl:real;
Function Get_u:real;//в градусах
End;
constructor otr.create(x1,y1,x2,y2:real);
begin
self.x1:=x1; self.x2:=x2;self.y1:=y1;self.y2:=y2;
end;
Function otr.Get_dl:real;
begin
X:=(x1+x2)/2;
Y:=(y1+y2)/2;
dl:=sqrt(sqr(X-0)+sqr(Y-0));
result:=dl;
end;
Function otr.Get_u:real;
begin
if abs(x1-x2)<1.0e-6 then
u:=90
else
u:=arctan((y1-y2)/(x1-x2))/pi*180;
result:=u;
end;
Var n:integer; ugol:real;x,y:array of real;
imax,jmax,
i,j:integer; max:real;
o:otr;
begin
{ TODO -oUser -cConsole Main : Insert code here }
Writeln ('Input ugol, n');
Readln (ugol, n);
SetLength (x,n); SetLength (y,n);
Writeln ('x,y');
for i:= 0 to n-1 do
Readln(x[i],y[i]);
max:=0; imax:=-1; jmax:=-1;
for i:= 0 to n-2 do
for j:= i+1 to n-1 do
begin
o:=otr.create(x[i],y[i],x[j],y[j]);
if abs(ugol-o.Get_u)=90 then
if max<o.Get_dl then
begin
max:=o.Get_dl;
imax:=i;
jmax:=j
end;
o.Destroy;
end;
if imax=-1 then
writeln ('net otrezkov')
else
writeln ('imax=', imax+1, 'jmax=', jmax+1);
readln
end.


Часовой пояс GMT +4, время: 15:36.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.