Найти наибольший и наименьший элемент матрицы и поменять их местами - Pascal ABC (13367)

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

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

Даны натуральные числа N,M и матрица разрядности NxM действительных чисел, где n,m>=10. Найти наибольший и наименьший элемент матрицы и поменять их местами. Вот что написал, дальше помогите
Листинг программы
  1. Var
  2. n,m,i,j,min,max:integer;
  3. A:array[1..10,1..10] of integer;
  4. begin
  5. Repeat
  6. write('m=');
  7. readln(m);
  8. write('n=');
  9. rceadln(n);
  10. if (m <= 0) and (m > 10) and (n<= 0) and (n > 10) then
  11. writeln('Исходные данные не верны');
  12. until (m > 0) and (m<=10) and (n>0) and (n<=10);
  13. Randomize;
  14. For i:=1 to m do
  15. for j:=1 to n do
  16. A[i,j]:=random(20)-5;

Решение задачи: «Найти наибольший и наименьший элемент матрицы и поменять их местами»

textual
Листинг программы
  1. For i:=1 to n do begin
  2.   for j:=1 to m do begin
  3.       A[i,j]:=random(20)-5;
  4.       Write(A[i,j]:3,' ');
  5.   end;
  6.   WriteLn;
  7. end;
  8.  
  9. // поиск индексов минимального и максимального
  10. imin :=1; jmin:=1;
  11. imax:=1; jmax:=1;
  12. For i:=1 to n do
  13.   for j:=1 to m do
  14.   begin
  15.     if A[i,j]>A[imax,jmax] then begin imax:=i; jmax:=j end;
  16.     if A[i,j]<A[imin,jmin] then begin imin:=i; jmin:=j end;
  17.   end;
  18.  
  19. // поменять местами
  20. t:=A[imin,jmin];
  21. A[imin,jmin] := A[imax,jmax];
  22. A[imax,jmax] := t;
  23.  
  24. // вывести матрицу
  25. For i:=1 to n do
  26.   begin
  27.     for j:=1 to m do Write(A[i,j]:3,' ');
  28.     WriteLn;
  29.   end;
  30.  
  31. Конец сказки.

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

  1. В первой строке кода используется цикл for, который выполняется от 1 до n (количество строк в матрице) и в каждой итерации выполняет следующие действия:
    • Для каждой строки i в матрице выполняется внутренний цикл for, который в свою очередь выполняется от 1 до m (количество столбцов в матрице).
    • Внутри внутреннего цикла присваивается случайное значение каждой ячейке матрицы A[i,j] с помощью функции random(20)-5;. Это значение будет являться оценкой от -20 до 19 включительно.
    • Значение каждой ячейки выводится на экран с помощью функции Write(A[i,j]:3,' '). Здесь 3 - это количество знаков после запятой, а ' - это пробел между значениями.
    • После завершения внутреннего цикла, выводится символ новой строки WriteLn;.
    • Все эти действия выполняются для каждой строки матрицы.
  2. После завершения первой строки кода начинается вторая часть, которая ищет индексы минимального и максимального элементов в матрице. Для этого используются два вложенных цикла for:
    • Первый цикл for выполняется от 1 до n (количество строк в матрице).
    • Второй цикл for выполняется от 1 до m (количество столбцов в матрице).
    • Внутри циклов сравниваются значения элементов матрицы A[i,j] и A[imin,jmin] (наименьший элемент) и A[imax,jmax] (наибольший элемент). Если текущий элемент A[i,j] больше A[imax,jmax], то обновляется значение наибольшего элемента, а если текущий элемент меньше A[imin,jmin], то обновляется значение наименьшего элемента.
    • После завершения второго цикла for, обновленные значения наибольшего и наименьшего элементов сохраняются в переменных imax и imin соответственно.
  3. После завершения второй части кода начинается третья часть, в которой происходит обмен местами наименьшего и наибольшего элементов. Для этого используется оператор присваивания t:=A[imin,jmin];A[imin,jmin] := A[imax,jmax];A[imax,jmax] := t;. Здесь t является временной переменной, которая хранит значение наименьшего элемента, а затем присваивается наибольшему элементу, а значения наименьшего элемента обновляются на значения наибольшего элемента.
  4. После завершения третьей части кода начинается четвертая и последняя часть, в которой выводится окончательное значение матрицы. Для этого используется еще один цикл for, который выполняется от 1 до n (количество строк в матрице):
    • Внутри цикла выводятся значения каждой ячейки матрицы A[i,j] с помощью функции Write(A[i,j]:3,' ').
    • После завершения внутреннего цикла выводится символ новой строки WriteLn;. Таким образом, весь код выполняет следующие действия: создает матрицу случайных чисел, находит наименьший и наибольший элементы, меняет их местами и выводит окончательное значение матрицы.

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


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

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

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

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

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

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