// PascalABC.Net 3.0, сборка 1066type Point=record x,y:double; end;procedure GetPoint(c:char; var M:point);begin Write('введите координаты точки ',c,': '); Read(M.x,M.y)end;function L(A,B:Point):double;begin Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))end;function S(A,B,C:Point):double;var p,la,lb,lc:double;begin la:=L(A,B); lb:=L(B,C); lc:=L(C,A); if (la+lb>lc) and (la+lc>lb) and (lb+lc>la) then begin p:=0.5*(la+lb+lc); Result:=sqrt(p*(p-la)*(p-lb)*(p-lc)) end else Result:=0end;var A,B,C,D:Point; S1,S2:double;begin GetPoint('A',A); GetPoint('B',B); GetPoint('C',C); GetPoint('D',D); S1:=S(A,B,C); if S1=0 then Write('По точкам А,В,С нельзя построить треугольник') else begin S2:=S(C,D,A); if S2=0 then Write('По точкам C,D,A нельзя построить треугольник') else Writeln('Площадь четырехугольника равна ',S1+S2) endend.
Тестовое решение:введите координаты точки A: -5 -7введите координаты точки B: -2 4введите координаты точки C: 5 9введите координаты точки D: 9 -3Площадь четырехугольника равна 123