Курсовая работа: Простая замкнутая ломаная кривая
{Устраняет отрицательные значения расстояния}
Procedure absal(Var A:Mass; n1,n2:word);
Var i:word;
Begin
For i:=n1 to n2 do A[i].r:=abs(A[i].r)
End;
{Ищет номер ближайшей точки к i-ой}
Function PoiskNT(Var A:Mass; n1,n2:word):word;
var i,j:word;
Begin j:=n1;
While A[j].r<0 do j:=j+1;
For i:=n1 to n2 do
if (A[i].r>0) and (A[i].r<A[j].r) then j:=i;
PoiskNT:=j;
End;
{Сдвигает точки в массиве на 1 позицию влево начиная с n1 до n2}
Procedure Sdvyg(Var A:Mass;n1,n2:word);
Var i:word;
Begin
For i:=n1 to n2-1 do A[i]:=A[i+1];
A[n2].x:=1000; A[n2].y:=1000;
End;
{Ищет основание перпендикуляра опущенного из точки Т на прямую проходящую через точки В иС}
Procedure Osn(T,B,C:tochka;var O:tochka);
Var k,b2,a1,b1,c1:real;
Begin
If (B.x=C.x) then begin O.x:=B.x; O.y:=T.y end
else begin
k:=(B.y-C.y)/(B.x-C.x);