В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Elkhadi54Skorpion
Elkhadi54Skorpion
15.11.2021 21:06 •  Информатика

Задали сделать прогу, незнаю как составить. используя функции otr и area из proc16 и proc18, описать процедуру dist(px,py,ax,ay,bx,by,d), находящую расстояние d от точки p до прямой ab по формуле d = 2spab / |ab|, где spab — площадь треугольника pab. с этой процедуры найти расстояния от точки p до прямых ab, ac, bc, если даны координаты точек p, a, b, c. . proc16. описать функцию otr(ax,ay,bx,by) вещественного типа, находящую длину отрезка ab на плоскости по координатам его концов: |ab| = sqrt((ax-bx)2 + (ay-by)2) (ax, ay, bx, by — вещественные параметры). с этой функции найти длины отрезков ab, ac, ad, если даны координаты точек a, b, c, d. proc18. используя функции otr и perim из proc16 и proc17, описать функцию area(ax,ay,bx,by,cx,cy) вещественного типа, находящую площадь треугольника abc по формуле герона: sabc = sqrt(p·(p–|ab|)·(p–|ac|)·(p–|bc| где p — полупериметр. с этой функции найти площади треугольников abc, abd, acd, если даны координаты точек a, b, c, d. (вот еще если понадобиться)proc17. используя функцию otr из proc16, описать функцию perim(ax,ay,bx,by,cx,cy) вещественного типа, находящую периметр треугольника abc по координатам его вершин (ax, ay, bx, by, cx, cy — вещественные параметры). с этой функции найти периметры треугольников abc, abd, acd, если даны координаты точек a, b, c, d. только напишите полностью с описательной частью т.е с началом и т.д . заранее огромное

Показать ответ
Ответ:
HamstersLOKKI
HamstersLOKKI
08.07.2020 07:46
Function Otr(Ax, Ay, Bx, By: real): real;
begin
  Otr := sqrt(sqr(Ax - Bx) + sqr(Ay - By))
end;

function Perim(Ax, Ay, Bx, By, Cx, Cy: real): real;
begin
  Perim := Otr(Ax, Ay, Bx, By) + Otr(Bx, By, Cx, Cy) + Otr(aX, aY, Cx, Cy);
end;

function Area(Ax, Ay, Bx, By, Cx, Cy: real): real;
var
  pp: real;
begin
  pp := Perim(Ax, Ay, Bx, By, Cx, Cy) / 2;
  Area := sqrt(pp * (pp - Otr(Ax, Ay, Bx, By)) * (pp - Otr(Bx, By, Cx, Cy)) *
    (pp - Otr(Ax, Ay, Cx, Cy)))
end;

procedure Dist(Px, Py, Ax, Ay, Bx, By: real; var D: real);
begin
  D := 2 * Area(Px, Py, Ax, Ay, Bx, By) / Otr(Ax, Ay, Bx, By)
end;

var
  Px, Py, Ax, Ay, Bx, By, Cx, Cy: real;
  d: real;

begin
  writeln('Вводите координаты точкек парами чисел: ');
  write('P-> ');
  readln(Px, Py);
  write('A-> ');
  readln(Ax, Ay);
  write('B-> ');
  readln(Bx, By);
  write('C-> ');
  readln(Cx, Cy);
  writeln;
  Dist(Px, Py, Ax, Ay, Bx, By, d);
  writeln('Расстояние от Р до АВ равно ', d);
  Dist(Px, Py, Cx, Cy, Bx, By, d);
  writeln('Расстояние от Р до ВC равно ', d);
  Dist(Px, Py, Ax, Ay, Cx, Cy, d);
  writeln('Расстояние от Р до АC равно ', d)
end.

Тестовое решение:
Вводите координаты точкек парами чисел:
P-> -3 6
A-> 5 8
B-> 9 -4
C-> 8 -2.5

Расстояние от Р до АВ равно 8.22192191643778
Расстояние от Р до ВC равно 4.43760156980184
Расстояние от Р до АC равно 8.24163383692135
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота