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