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