Переписать текст программы, что бы решалось через процедуры - Pascal

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. var
  2. dlins: array [1..6] of real;//массив для поиска максимального значения длины
  3. x1,x2,y1,y2,z1,z2,p1,p2: real;//координаты точек
  4. max_vrem: real;//временная вещественная
  5. i,j:integer;//временные целые
  6.  
  7. function dlina_func(d1,d2,d3,d4: real): real;//функция для расчета расстояний между точками
  8. begin
  9. dlina_func := sqrt(sqr(d1-d3)+sqr(d2-d4));
  10. end;
  11. begin
  12. write('Введите через пробел координаты первой точки x1 и x2: ');readln(x1,x2);//ввод координат точки X
  13. write('Введите через пробел координаты второй точки y1 и y2: ');readln(y1,y2);//ввод координат точки Y
  14. write('Введите через пробел координаты третьей точки z1 и z2: ');readln(z1,z2);//ввод координат точки Z
  15. write('Введите через пробел координаты четвертой точки p1 и p2: ');readln(p1,p2);//ввод координат точки P
  16. dlins[1]:= dlina_func(x1,x2,y1,y2);//определить расстояние между точками X и Y (с записью в массив)
  17. dlins[2]:= dlina_func(x1,x2,z1,z2);//определить расстояние между точками X и Z ...
  18. dlins[3]:= dlina_func(x1,x2,p1,p2);//определить расстояние между точками X и P ...
  19. dlins[4]:= dlina_func(y1,y2,z1,z2);//определить расстояние между точками Y и Z ...
  20. dlins[5]:= dlina_func(y1,y2,p1,p2);//определить расстояние между точками Y и P ...
  21. dlins[6]:= dlina_func(z1,z2,p1,p2);//определить расстояние между точками Z и P ...
  22. max_vrem := dlins[1]; j := 1;//для номера максимального и его значения
  23. for i := 2 to 6 do//поиск максимального элемента и его номера в массиве
  24. if (max_vrem < dlins[i]) then
  25. begin
  26. max_vrem := dlins[i];
  27. j := i;
  28. end;//если максимальных несколько (совпадают) выводим первое
  29. case j of//в зависимости от номера максимального в массиве выводим различное содержимое
  30. 1: writeln('На максимальном расстоянии друг от друга находятся точки X и Y. Это расстояние равно: ',dlins[1]);
  31. 2: writeln('На максимальном расстоянии друг от друга находятся точки X и Z. Это расстояние равно: ',dlins[2]);
  32. 3: writeln('На максимальном расстоянии друг от друга находятся точки X и P. Это расстояние равно: ',dlins[3]);
  33. 4: writeln('На максимальном расстоянии друг от друга находятся точки Y и Z. Это расстояние равно: ',dlins[4]);
  34. 5: writeln('На максимальном расстоянии друг от друга находятся точки Y и P. Это расстояние равно: ',dlins[5]);
  35. 6: writeln('На максимальном расстоянии друг от друга находятся точки Z и P. Это расстояние равно: ',dlins[6]);
  36. end;
  37. end.

Решение задачи: «Переписать текст программы, что бы решалось через процедуры»

textual
Листинг программы
  1. function dlina(x1,y1,x2,y2: Real): Real;
  2. begin
  3.   dlina:=SqRt(Sqr(x1-x2)+Sqr(y1-y2));
  4. end;
  5. const
  6.   n=4; Pnt: String[n] = 'XYZP'; eps=1e-5;
  7. var
  8.   x, y: array [1..n] of Real;
  9.   d: array [1..n*(n-1) div 2] of Real;
  10.   m: Real;
  11.   i, j, k: Integer;
  12. begin
  13.   for i:=1 to n do begin
  14.     Write('Координаты точки ',Pnt[i],': '); ReadLn(x[i],y[i]);
  15.   end;
  16.   k:=0;
  17.   for i:=1 to n do for j:=i+1 to n do begin
  18.     Inc(k); d[k]:=dlina(x[i],y[i],x[j],y[j]);
  19.   end;
  20.   m:=d[1]; for i:=2 to k do if m<d[i] then m:=d[i];
  21.   WriteLn('Максимальное расстояние между точками: ');
  22.   k:=0;
  23.   for i:=1 to n do for j:=i+1 to n do begin
  24.     Inc(k); if Abs(m-d[k])<eps then WriteLn(Pnt[i],' и ',Pnt[j],' = ',d[k]);
  25.   end;
  26. end.

Объяснение кода листинга программы

  1. Объявление функции dlina:
    • Название переменных: x1, y1, x2, y2
    • Значение переменной: Real
    • Описание: Функция принимает 4 параметра типа Real и возвращает значение типа Real, которое представляет собой расстояние между точками с координатами (x1, y1) и (x2, y2).
  2. Объявление констант и переменных:
    • Название констант и переменных: 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
    • Описание: Здесь объявляются константы и переменные, необходимые для выполнения программы.
  3. Ввод координат точек:
    • Описание: Запрашиваются у пользователя координаты n точек, обозначенных буквами 'X', 'Y', 'Z' и 'P'.
  4. Расчет расстояний между точками:
    • Описание: Вычисляются расстояния между всеми парами точек, используя функцию dlina, и эти расстояния сохраняются в массиве d.
  5. Поиск максимального расстояния:
    • Описание: Находится максимальное расстояние среди всех вычисленных и сохраняется в переменной m.
  6. Вывод максимального расстояния и соответствующих точек:
    • Описание: Выводятся максимальное расстояние между точками и соответствующие точки, между которыми это расстояние достигается, с учетом заранее заданной погрешности eps.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы