Показать сообщение отдельно
Старый 10.01.2009, 23:46   #4
Посетитель
 
Аватар для VelvetDust
 
Регистрация: 06.12.2006
Адрес: ЮГ-2-низ
Сообщений: 2,017
Отправить сообщение для VelvetDust с помощью ICQ
По умолчанию

Паскаль плохо помню, наверняка чо не так написал... Компилятора нету.
<<< Как найти площадь S многоугольника, зная координаты его вершин >>>

program ploschad(input,output);
var i,n:integer; x,y,x1,y1,x2,y2,r,a,b,c,p:real;
begin
writeln('Number of vertices? ');
read(n);
{ Многоугольник разбиваем на кусочки:
первая вершина и каждые две соседних образуют треугольник;
площадь каждого вычисляем по формуле Герона,
сумма всех треугольников даст целиком многоугольник }
write('Vertice 1 (x,y): '); read(x,y);
write('Vertice 2 (x,y): '); read(x1,y1);
r:=0;
for i:=3 to n do
begin
write('Vertice ',i,' (x,y): ');
read(x2,y2);
a:=sqrt(sqr(x-x1)+sqr(y-y1));
b:=sqrt(sqr(x-x2)+sqr(y-y2));
c:=sqrt(sqr(x2-x1)+sqr(y2-y1));
p:=(a+b+c)/2;
r:=r+sqrt(p*(p-a)*(p-b)*(p-c));
x1:=x2; y1:=y2;
end;
writeln('S = ',r);
end
__________________
Кто лжец и кто подлец – для нас загадка,
И правду знает лишь детектор лжи.
Но на душе довольно-таки гадко –
Нет истины, а есть лишь миражи…

Последний раз редактировалось VelvetDust; 10.01.2009 в 23:48..
VelvetDust вне форума   Ответить с цитированием