Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Площадь треугольника

Автор: Трейси 6.04.2004 19:14

Привет всем. Помогите решить задачку huh.gif :
Треугольник задан координатами своих вершин. Составить программу вычисления его площади.(через подпрограмму – функцию)
Заранее спасибо.

Автор: Altair 6.04.2004 21:05

ПО-ЖА-ЛУ-Й-СТА! ;)

Код

var
 x1,y1,x2,y2,x3,y3 :real; {координаты вершин}

function S_tr(x1,y1,x2,y2,x3,y3:real): real;
var
a,b,c: real; {стороны треугольника}
s,p:real;

begin
{модуль вектора=длинне стороны}
a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
b:=sqrt(sqr(x2-x3)+sqr(y2-y3));
c:=sqrt(sqr(x3-x1)+sqr(y3-y1));
{площадь по теореме Герона}
If ((a+b)<c) or ((a+c)<b) or ((c+b)<a) then
begin
 writeln('Error!');
 Halt {завершение программы - ошибка в данных}
end;
p:=(a+b+c)/2; {полупериметр}
S:=sqrt(p*(p-a)*(p-b)*(p-c));
S_tr:=s;
end;

begin
readln(x1,y1,x2,y2,x3,y3);
writeln(s_tr(x1,y1,x2,y2,x3,y3));
readln
end.



я проверил работает.
кодировка кода - win

Автор: Трейси 7.04.2004 0:23

СПАСИБО smile.gif

Автор: Guest 7.04.2004 1:08

Код

function S (x1,y1,x2,y2,x3,y3:real): real;
begin
 S := (x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2)) / 2
end;