Переписать текст программы, что бы решалось через процедуры - Pascal
Формулировка задачи:
Листинг программы
- var
- dlins: array [1..6] of real;//массив для поиска максимального значения длины
- x1,x2,y1,y2,z1,z2,p1,p2: real;//координаты точек
- max_vrem: real;//временная вещественная
- i,j:integer;//временные целые
- function dlina_func(d1,d2,d3,d4: real): real;//функция для расчета расстояний между точками
- begin
- dlina_func := sqrt(sqr(d1-d3)+sqr(d2-d4));
- end;
- begin
- write('Введите через пробел координаты первой точки x1 и x2: ');readln(x1,x2);//ввод координат точки X
- write('Введите через пробел координаты второй точки y1 и y2: ');readln(y1,y2);//ввод координат точки Y
- write('Введите через пробел координаты третьей точки z1 и z2: ');readln(z1,z2);//ввод координат точки Z
- write('Введите через пробел координаты четвертой точки p1 и p2: ');readln(p1,p2);//ввод координат точки P
- dlins[1]:= dlina_func(x1,x2,y1,y2);//определить расстояние между точками X и Y (с записью в массив)
- dlins[2]:= dlina_func(x1,x2,z1,z2);//определить расстояние между точками X и Z ...
- dlins[3]:= dlina_func(x1,x2,p1,p2);//определить расстояние между точками X и P ...
- dlins[4]:= dlina_func(y1,y2,z1,z2);//определить расстояние между точками Y и Z ...
- dlins[5]:= dlina_func(y1,y2,p1,p2);//определить расстояние между точками Y и P ...
- dlins[6]:= dlina_func(z1,z2,p1,p2);//определить расстояние между точками Z и P ...
- max_vrem := dlins[1]; j := 1;//для номера максимального и его значения
- for i := 2 to 6 do//поиск максимального элемента и его номера в массиве
- if (max_vrem < dlins[i]) then
- begin
- max_vrem := dlins[i];
- j := i;
- end;//если максимальных несколько (совпадают) выводим первое
- case j of//в зависимости от номера максимального в массиве выводим различное содержимое
- 1: writeln('На максимальном расстоянии друг от друга находятся точки X и Y. Это расстояние равно: ',dlins[1]);
- 2: writeln('На максимальном расстоянии друг от друга находятся точки X и Z. Это расстояние равно: ',dlins[2]);
- 3: writeln('На максимальном расстоянии друг от друга находятся точки X и P. Это расстояние равно: ',dlins[3]);
- 4: writeln('На максимальном расстоянии друг от друга находятся точки Y и Z. Это расстояние равно: ',dlins[4]);
- 5: writeln('На максимальном расстоянии друг от друга находятся точки Y и P. Это расстояние равно: ',dlins[5]);
- 6: writeln('На максимальном расстоянии друг от друга находятся точки Z и P. Это расстояние равно: ',dlins[6]);
- end;
- end.
Решение задачи: «Переписать текст программы, что бы решалось через процедуры»
textual
Листинг программы
- function dlina(x1,y1,x2,y2: Real): Real;
- begin
- dlina:=SqRt(Sqr(x1-x2)+Sqr(y1-y2));
- end;
- const
- n=4; Pnt: String[n] = 'XYZP'; eps=1e-5;
- var
- x, y: array [1..n] of Real;
- d: array [1..n*(n-1) div 2] of Real;
- m: Real;
- i, j, k: Integer;
- begin
- for i:=1 to n do begin
- Write('Координаты точки ',Pnt[i],': '); ReadLn(x[i],y[i]);
- end;
- k:=0;
- for i:=1 to n do for j:=i+1 to n do begin
- Inc(k); d[k]:=dlina(x[i],y[i],x[j],y[j]);
- end;
- m:=d[1]; for i:=2 to k do if m<d[i] then m:=d[i];
- WriteLn('Максимальное расстояние между точками: ');
- k:=0;
- for i:=1 to n do for j:=i+1 to n do begin
- Inc(k); if Abs(m-d[k])<eps then WriteLn(Pnt[i],' и ',Pnt[j],' = ',d[k]);
- end;
- end.
Объяснение кода листинга программы
- Объявление функции
dlina
:- Название переменных:
x1, y1, x2, y2
- Значение переменной:
Real
- Описание: Функция принимает 4 параметра типа
Real
и возвращает значение типаReal
, которое представляет собой расстояние между точками с координатами(x1, y1)
и(x2, y2)
.
- Название переменных:
- Объявление констант и переменных:
- Название констант и переменных:
n, Pnt, eps, x, y, d, m, i, j, k
- Значение констант:
n = 4
,Pnt = 'XYZP'
,eps = 1e-5
- Значение переменных:
x, y: array [1..n] of Real
,d: array [1..n*(n-1) div 2] of Real
,m: Real
,i, j, k: Integer
- Описание: Здесь объявляются константы и переменные, необходимые для выполнения программы.
- Название констант и переменных:
- Ввод координат точек:
- Описание: Запрашиваются у пользователя координаты
n
точек, обозначенных буквами'X'
,'Y'
,'Z'
и'P'
.
- Описание: Запрашиваются у пользователя координаты
- Расчет расстояний между точками:
- Описание: Вычисляются расстояния между всеми парами точек, используя функцию
dlina
, и эти расстояния сохраняются в массивеd
.
- Описание: Вычисляются расстояния между всеми парами точек, используя функцию
- Поиск максимального расстояния:
- Описание: Находится максимальное расстояние среди всех вычисленных и сохраняется в переменной
m
.
- Описание: Находится максимальное расстояние среди всех вычисленных и сохраняется в переменной
- Вывод максимального расстояния и соответствующих точек:
- Описание: Выводятся максимальное расстояние между точками и соответствующие точки, между которыми это расстояние достигается, с учетом заранее заданной погрешности
eps
.
- Описание: Выводятся максимальное расстояние между точками и соответствующие точки, между которыми это расстояние достигается, с учетом заранее заданной погрешности
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д