type point = record x,y: real; end; var s: real; pts,vc: array [1..3] of point; f: text; i,j: integer; notsqr: boolean; begin assign (f,'C:\In.txt'); reset (f); { считывание координат точек} for i:=1 to 3 do readln(f,pts[i].x,pts[i].y); close (f); { вычисление векторов} vc[1].x:=pts[2].x-pts[3].x; vc[1].y:=pts[2].y-pts[3].y; i:=1; for j:=2 to 3 do begin vc[j].x:=pts[j].x-pts[i].x; vc[j].y:=pts[j].y-pts[i].y; end; {вычисление скалярного произведения} notsqr:=true; for i:=1 to 2 do for j:=i+1 to 3 do begin s:=vc[i].x*vc[j].x+vc[i].y*vc[j].y; if (s=0) then begin if (sqr(vc[i].x)+sqr(vc[i].y))= (sqr(vc[j].x)+sqr(vc[j].y)) then begin writeln('площадь квадрата S = ', sqr(vc[i].x)+sqr(vc[i].y)); notsqr:=false; end else writeln('разные длины сторон'); end; end; if notsqr then writeln('квадрат составить нельзя'); end.