На плоскости дано 5 точек, которые образуют выпуклый многоугольник. Найти его площадь. Разделить его на треугольники. Вычисление каждой из площадей оформить в виде подпрограммы; — Pascal(Паскаль)

uses crt;
function Plosh(ax,ay,bx,by,cx,cy:real):real;
begin
Plosh:=abs(ax*(by-cy)+bx*(cy-ay)+cx*(ay-by))/2;
end;
var ax,ay,bx,by,cx,cy,dx,dy,ex,ey:real;
    s,s1,s2,s3:real;
begin
clrscr;
writeln('Введите координаты выпуклого 5-угольника в порядке обхода:');
readln(ax,ay,bx,by,cx,cy,dx,dy,ex,ey);
s1:=Plosh(ax,ay,bx,by,cx,cy);
s2:=Plosh(ax,ay,cx,cy,dx,dy);
s1:=Plosh(ax,ay,ex,ey,dx,dy);
s:=s1+s2+s3;
write('Площадь=',s:0:2);
readln
end.

Следующий вариант

Модуль

unit pl_pent;
interface
function Plosh(ax,ay,bx,by,cx,cy:real):real;
implementation
function Plosh(ax,ay,bx,by,cx,cy:real):real;
begin
Plosh:=abs(ax*(by-cy)+bx*(cy-ay)+cx*(ay-by))/2;
end;
end.

Программа

uses crt,pl_pent;
var ax,ay,bx,by,cx,cy,dx,dy,ex,ey:real;
    s,s1,s2,s3:real;
begin
clrscr;
writeln('Введите координаты выпуклого 5-угольника в порядке обхода:');
readln(ax,ay,bx,by,cx,cy,dx,dy,ex,ey);
s1:=Plosh(ax,ay,bx,by,cx,cy);
s2:=Plosh(ax,ay,cx,cy,dx,dy);
s1:=Plosh(ax,ay,ex,ey,dx,dy);
s:=s1+s2+s3;
write('Площадь=',s:0:2);
readln
end.

Leave a Comment

85 − 80 =