Добрые люди, помогите пожалуйста с решением..(Паскаль АВС (процедуры) Составить и отладить программу для вычисления площади произвольного четырехугольника по заданным координатам его вершин, определив функции для вычисления длин сторон и нахождения площади треугольников.(Паскаль АВС) Препод задал, но ничего не объяснил... Завтра уже сдавать лаб.работу. Решается вопрос автомата в зимней сессии.
// PascalABC.Net 3.0, сборка 1066
type
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:=0
end;
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)
end
end.
Тестовое решение:
введите координаты точки A: -5 -7
введите координаты точки B: -2 4
введите координаты точки C: 5 9
введите координаты точки D: 9 -3
Площадь четырехугольника равна 123
Форма вопроса доступна на