Задачу решить двумя способами: с использованием подпрограммы-функции и подпрограммы-процедуры. Обязательно построение блок-схем алгоритмов! 1. Треугольник задан координатами своих вершин. Вычислить площадь треугольника по форм...
Задачу решить двумя способами: с использованием подпрограммы-функции и подпрограммы-процедуры. Обязательно построение блок-схем алгоритмов!
1. Треугольник задан координатами своих вершин. Вычислить площадь треугольника по формуле Герона с использованием подпрограммы нахождения расстояния между двумя точками на координатной плоскости.
Полезные формулы:
1. Формула Герона: S=sqrt((p-a)(p-b)(p-c)) , где p=a+b+c/2 (полупериметр треугольника со сторонами a, b и c)
2. Расстояние между двумя точками на координатной плоскости: d=sqrt(sqr(x2-x1)+sqr(y2-y1)) , где (x1, y1) и (x2, y2) – координаты первой и второй точек соответственно.
Ответ(ы) на вопрос:
Гость
{1 способ (с функцией)}
Program n1;
function Dlina(x1,y1,x2,y2: integer):real;
var d: real;
begin
d:= sqrt(sqr(y1-y2)+sqr(x1-x2));
Dlina:=d;
end;
var xa,ya,xb,yb,xc,yc: integer;
ab,bc,ca,S,p: real;
begin
writeln ('введите коорд. вершины A ');
readln (xa,ya);
writeln ('введите коорд. вершины B ');
readln (xb,yb);
writeln ('введите коорд. вершины C ');
readln (xc,yc);
ab:=Dlina(xa,ya,xb,yb);
bc:=Dlina(xb,yb,xc,yc);
ca:=Dlina(xc,yc,xa,ya);
p:=(ab+bc+ca)/2;
S:=sqrt(p*(p-ab)*(p-bc)*(p-ca));
writeln('площадь : ',S);
end.
{2 способ(с процедурой)}
program n2;
var x1,x2,x3,y1,y2,y3,s,a,b,c,p:real;
procedure dlina(q,w,e,r:real; var d:real);
begin
d:=sqrt(sqr(q-w)+sqr(e-r));
end;
begin
writeln ('введите коорд. вершины A ');
readln (x1,y1);
writeln ('введите коорд. вершины B ');
readln (x2,y2);
writeln ('введите коорд. вершины C ');
readln (x3,y3);
dlina(x1,x2,y1,y2,a);
dlina(x2,x3,y2,y3,b);
dlina(x3,x1,y3,y1,c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('площадь: ',s);
end.
Не нашли ответ?
Похожие вопросы