Середа-Сергеенков980
?>

1. разветвляющиеся алгоритмы составьте алгоритм проверки: пройдет ли мяч диаметром d через прямоугольную форточку, размеры которой а и в. 2. циклический алгоритм составьте алгоритм для вывода на экран таблицы значений аргумента и функции y=x2 при изменении х на интервале от а до в с шагом h.

Информатика

Ответы

marinamarinazmeeva2444
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
Египтян2004
Думаю нет большой разницы между процедурой и функцией, просто функция куда удобнее.
Для нахождения нода используется алгоритм Эвклида

//PascalABC.Net

function NOD(A, B: integer): integer;
begin
    while A <> B do
        if A > B then A := A - B else B := B - A;
    NOD := A;
end;

procedure pNOD(A, B: integer; var NOD: integer);
begin
    while A <> B do
        if A > B then A := A - B else B := B - A;
    NOD := A;
end;

begin
    var a: Array of integer := (16, 32, 40, 64, 80, 128);
    var n := a[low(a)];
    for var i := low(a) to high(a) do
        pNOD(n, a[i], n);
   
    Writeln(n);
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

1. разветвляющиеся алгоритмы составьте алгоритм проверки: пройдет ли мяч диаметром d через прямоугольную форточку, размеры которой а и в. 2. циклический алгоритм составьте алгоритм для вывода на экран таблицы значений аргумента и функции y=x2 при изменении х на интервале от а до в с шагом h.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

dawlatowajana
Bmashutav16
nngudkova1970
Овчинников_Грузман
msk27
Leonidovich_Elena771
Владимир-Денисович1080
horst58
Станиславовна196
николаевич-Елена988
ann328389
saytru5850
demon8608
nopel91668
ulechkaevseeva