М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Йщщ
Йщщ
06.02.2022 03:12 •  Информатика

Задали сделать прогу, незнаю как составить. используя функции 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. только напишите полностью с описательной частью т.е с началом и т.д . заранее огромное

👇
Ответ:
BackTiger007
BackTiger007
06.02.2022
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
4,7(72 оценок)
Открыть все ответы
Ответ:
stanstan199
stanstan199
06.02.2022
В позиционной системе каждый разряд стоит на своей позиции.
Например, в 10-ной системе, число 235 означает, что в нем 2 сотни, 3 десятка и 5 единиц.
В 2-ной системе число 10010 означает, что в нем 1 число 2^4 = 16 и
1 число 2^1 = 2. Таким образом, эта запись означает число 16 + 1 = 18.
В непозиционной системе разные единицы могут быть в разных местах, а их значение определяется взаимным расположением.
Самая известная непозиционная система - это римские цифры.
Запись IV означает 5 - 1 = 4, запись VI означает 5 + 1 = 6.
Запись IX означает 10 - 1 = 9, запись XI означает 10 + 1 = 11.
То есть значение значка I означает то +1, то -1, в зависимости от того, стоит он перед или после более старшего значка.
4,6(44 оценок)
Ответ:
Mary2304Cat
Mary2304Cat
06.02.2022
uses crt,graph; type mas=array[1..500] of Pointtype; var gd,gm,i,j,k,n:integer;     a:mas; begin randomize; gd:=0; initgraph(gd,gm,''); for i:=1 to 500 do  begin   a[i].x:=random(getmaxX);   a[i].y:=random(getmaxY);   circle(a[i].x,a[i].y,2);  end; k:=0;n:=0; repeat k:=k+1; delay(200); setcolor(0); for i:=1 to 500 do circle(a[i].x,a[i].y,2); for i:=1 to 500 do  begin   if a[i].y>getmaxY-n-10 then a[i].y:=1   else a[i].y:=a[i].y+3;   if a[i].x<0 then a[i].x:=getmaxX   else a[i].x:=a[i].x-1;  end; setcolor(15); for i:=1 to 500 do circle(a[i].x,a[i].y,2); if k mod 20=0 then  begin   n:=n+1;   line(0,getmaxY-n,getmaxX,getmaxY-n);  end; until keypressed; readln end.
4,7(32 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ