нужно прокомментировать пару простых программ! помогите!   Код uses     crt; 
   type     point = array [1..2] of real; 
   const     n = 4;     p: array [1..n] of point = ((1, 1), (1, 5), (6, 5), (6, 1)); 
   function distance(i, j: integer): real;   begin     distance := sqrt(sqr(p[i, 1] - p[j, 1]) + sqr(p[i, 2] - p[j, 2]));   end; 
   function angle(i, j, k: integer): boolean;      var     p0, p1, p2: point; s: real;   begin     p0 := p[i]; p1 := p[j]; p2 := p[k];    {присвоение к временным переменным}          p1[1] := p1[1] - p0[1]; p1[2] := p1[2] - p0[2]; {вычисление по точкам к примеру для угла BAC нужно}           p2[1] := p2[1] - p0[1]; p2[2] := p2[2] - p0[2];  {(В(X)-A(X)*B(Y)-A(Y))+(C(X)-A(X)*С(Y)-A(Y)) где X и Y числа координатной оси}          s := p1[1] * p2[1] + p1[2] * p2[2];     if s = 0 then angle := true     else angle := false;   end; 
   function square(i, j, k, l: integer): boolean;   begin     if (angle(i, l, j) = true) and        (angle(k, j, l) = true) and        (distance(i, l) = distance(i, j)) and        (distance(i, j) = distance(j, k)) then        square := true     else square := false;   end; 
   function rectangle(i, j, k, l: integer): boolean;   begin     if (angle(i, l, j) = true) and        (angle(k, j, l) = true) and (        (distance(i, l) <> distance(i, j)) or        (distance(i, j) <> distance(j, k))) then        rectangle := true     else rectangle := false;   end; 
   var     i, j, k, l: integer; 
   begin     clrscr;     for i := 1 to n - 3 do       for j := i + 1 to n - 2 do         for k := i + 2 to n - 1 do           for l := i + 3 to n do             if square(i, j, k, l) = true then writeln('Квадрат') else              if rectangle(i, j, k, l) = true then writeln('Прямоугольник') else               writeln('Не прямой угол детектед');   end.  
 
 |  
| 
 | 
  
 |