В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы - Turbo Pascal

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

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

В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы. Вывести на печать исходный и полученный массивы.
Листинг программы
  1. {Программа для замены всех максимальных элементов на минимальные и наоборот}
  2. program terrabyte;
  3. uses crt, printer;
  4. var
  5. a: array [1..50] of integer; {исходный массив}
  6. c: array [1..50] of integer; {массив для индексов минимальных элементов}
  7. b: array [1..50] of integer; {массив для индексов максимальных элементов}
  8. n: integer; {количество элементов исходного массива}
  9. i: integer; {индекс элемента исходного массива}
  10. k: integer; {индекс массива с}
  11. j: integer; {индекс массива b}
  12. max: integer; {максимальный элемент исходного массива}
  13. min: integer; {минимальный элемент исходного массива}
  14. begin
  15. clrscr;
  16. writeln('Программа предназначена для замены всех максимальных элементов на минимальные и наоборот');
  17. {ввод количества ячеек}
  18. repeat
  19. writeln('введите количество элементов массива');
  20. readln(n);
  21. if (n>50) or (n<1) then
  22. writeln('ошибка');
  23. until (n>=1) and (n<=50);
  24. for i:=1 to n do
  25. begin
  26. writeln('введите элемент массива');
  27. readln(a[i]);
  28. end;
  29. writeln(' ');
  30. writeln('исходный массив');
  31. writeln(lst, 'исходный массив');
  32. for i:=1 to n do
  33. write(a[i], ' ');
  34. write(lst, a[i], ' ');
  35. writeln;
  36. {нахождение максимального элемента}
  37. max:=a[1];
  38. for i:=2 to n do
  39. if max<=a[i] then
  40. begin
  41. max:=a[i];
  42. b[j]:=i; {создание массива для индексов максимальных элементов}
  43. j:=j+1;
  44. end;
  45. {нахождение минимальных элементов}
  46. min:=a[1];
  47. k:=1;
  48. for i:=1 to n do
  49. if min>=a[i] then
  50. begin
  51. min:=a[i];
  52. c[k]:=i; {создание массива для индексов минимальных элементов}
  53. k:=k+1;
  54. end;
  55. for i:=1 to (j-1) do {замена максимальных элементов на минимальные}
  56. a[b[i]]:=min;
  57. for i:=1 to (k-1) do {замена минимальных элементов на максимальные}
  58. a[c[i]]:=max;
  59. if max=min then {проверка условия}
  60. begin
  61. writeln('макс. и мин. элементы равны');
  62. writeln(lst, 'макс. и мин. элементы равны');
  63. halt
  64. end;
  65. writeln('полученный массив');
  66. writeln(lst, 'полученный массив');
  67. for i:=i to n do
  68. write(a[i], ' ');
  69. write(lst, a[i], ' ');
  70. end.

Решение задачи: «В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы»

textual
Листинг программы
  1. program ProjectMassivMaxMin;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.   System.SysUtils;
  9. const
  10.   nm = 100;
  11. var
  12.   A: array[1..nm] of real;
  13.   buf: real;
  14.   i, n, imin, imax: integer;
  15. begin
  16.   imax := 1; imin := 1;
  17.  
  18.   WriteLn('Введите количество элементов ');
  19.   ReadLn(n);
  20.  
  21.   WriteLn('Введите элементы массива ');
  22.   for i := 1 to n do
  23.     ReadLn(A[i]);
  24.  
  25.   WriteLn('Массив А ');
  26.   for I := 1 to n do
  27.   begin
  28.     Write(A[i]:6:3,' ':3);
  29.  
  30.   if A[imin]<A[i] then imax := i
  31.   else if A[imax]<A[i] then imin := i;
  32.   end;
  33.   WriteLn;
  34.   WriteLn('максимальный элемент = ',A[imax]:5:3);
  35.   WriteLn('минимальный элемент = ',A[imin]:5:3);
  36.  
  37.   buf := A[imin];
  38.   A[imin] := A[imax];
  39.   A[imax] := buf;
  40.   WriteLn('Преобразованный массив ');
  41.   for i := 1 to n do
  42.     Write(A[i]:5:3,' ');
  43. ReadLn;
  44. end.

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

  1. Создается программа ProjectMassivMaxMin.
  2. Используются стандартные библиотеки Turbo Pascal.
  3. Объявляются переменные: nm (100), A (массив real), buf (реальная переменная), i, n, imin, imax (целые числа).
  4. Запрашивается количество элементов массива и считывается.
  5. Запрашивается и считывается каждый элемент массива.
  6. Вычисляются минимальный и максимальный элементы массива.
  7. Если текущий элемент меньше минимального, то обновляется значение максимального элемента. Если текущий элемент больше максимального, то обновляется значение минимального элемента.
  8. Считывается и записывается преобразованный массив.
  9. Программа завершается.

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


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

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

13   голосов , оценка 4.154 из 5

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

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

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