Треугольник задан координатами его вершин. Вычислить периметр, площадь треугольника - PascalABC.NET
Формулировка задачи:
Собственно вот сама задача:
Треугольник задан координатами его вершин. Вычислить периметр, площадь треугольника. Вычисление длин сторон оформить в виде процедуры
А вот то решение, которое у меня получилось:
Но что-то неверно, потому что площадь и периметр равен 0 всегда
Помогите, пожалуйста, исправить ошибку
Решение задачи: «Треугольник задан координатами его вершин. Вычислить периметр, площадь треугольника»
textual
Листинг программы
procedure dlina(a,b,z,w:integer;var d:real);
begin
d:=sqrt(sqr(a-b)+sqr(z+w));
end;
procedure plosh (a,b,c:real;var S:real);
var p:real;
begin
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
Var
x1,y1,x2,y2,x3,y3: Integer;
a,b,c,p,s: Real;
BEGIN
Writeln('Введите координаты 1 вершины: '); Readln(x1,y1);
Writeln('Введите координаты 2 вершины: '); Readln(x2,y2);
Writeln('Введите координаты 3 вершины: '); Readln(x3,y3);
dlina(x1,y1,x2,y2,a);
dlina(x2,y2,x3,y3,b);
dlina(x3,y3,x1,y1,c);
p:=a+b+c;
plosh(a,b,c,s);
Writeln('Периметр: ',p:0:2);
Writeln('Площадь: ',s:0:2);
Readln
END.
Объяснение кода листинга программы
- Вводятся координаты вершин треугольника.
- Вычисляются длины сторон треугольника по формуле расстояния между двумя точками в декартовой системе координат.
- Вычисляется полупериметр треугольника как сумма длин всех сторон, делённая на 2.
- Вычисляется площадь треугольника по формуле Герона.
- Выводится на экран периметр треугольника.
- Выводится на экран площадь треугольника.