нужно прокомментировать пару простых программ! помогите! Код 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.
|
|
|