Задачу решить двумя способами: с использованием подпрограммы-функции и подпрограммы-процедуры. Обязательно построение блок-схем алгоритмов! 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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы