Автор: Трейси 6.04.2004 19:14
Привет всем. Помогите решить задачку :
Треугольник задан координатами своих вершин. Составить программу вычисления его площади.(через подпрограмму – функцию)
Заранее спасибо.
Автор: 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
Автор: 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;