Найти наибольший и наименьший элемент матрицы и поменять их местами - Pascal ABC (13367)
Формулировка задачи:
Даны натуральные числа N,M и матрица разрядности NxM действительных чисел, где n,m>=10. Найти наибольший и наименьший элемент матрицы и поменять их местами.
Вот что написал, дальше помогите
Листинг программы
- Var
- n,m,i,j,min,max:integer;
- A:array[1..10,1..10] of integer;
- begin
- Repeat
- write('m=');
- readln(m);
- write('n=');
- rceadln(n);
- if (m <= 0) and (m > 10) and (n<= 0) and (n > 10) then
- writeln('Исходные данные не верны');
- until (m > 0) and (m<=10) and (n>0) and (n<=10);
- Randomize;
- For i:=1 to m do
- for j:=1 to n do
- A[i,j]:=random(20)-5;
Решение задачи: «Найти наибольший и наименьший элемент матрицы и поменять их местами»
textual
Листинг программы
- For i:=1 to n do begin
- for j:=1 to m do begin
- A[i,j]:=random(20)-5;
- Write(A[i,j]:3,' ');
- end;
- WriteLn;
- end;
- // поиск индексов минимального и максимального
- imin :=1; jmin:=1;
- imax:=1; jmax:=1;
- For i:=1 to n do
- for j:=1 to m do
- begin
- if A[i,j]>A[imax,jmax] then begin imax:=i; jmax:=j end;
- if A[i,j]<A[imin,jmin] then begin imin:=i; jmin:=j end;
- end;
- // поменять местами
- t:=A[imin,jmin];
- A[imin,jmin] := A[imax,jmax];
- A[imax,jmax] := t;
- // вывести матрицу
- For i:=1 to n do
- begin
- for j:=1 to m do Write(A[i,j]:3,' ');
- WriteLn;
- end;
- Конец сказки.
Объяснение кода листинга программы
- В первой строке кода используется цикл
for
, который выполняется от 1 доn
(количество строк в матрице) и в каждой итерации выполняет следующие действия:- Для каждой строки
i
в матрице выполняется внутренний циклfor
, который в свою очередь выполняется от 1 доm
(количество столбцов в матрице). - Внутри внутреннего цикла присваивается случайное значение каждой ячейке матрицы
A[i,j]
с помощью функцииrandom(20)-5;
. Это значение будет являться оценкой от -20 до 19 включительно. - Значение каждой ячейки выводится на экран с помощью функции
Write(A[i,j]:3,' ')
. Здесь3
- это количество знаков после запятой, а'
- это пробел между значениями. - После завершения внутреннего цикла, выводится символ новой строки
WriteLn;
. - Все эти действия выполняются для каждой строки матрицы.
- Для каждой строки
- После завершения первой строки кода начинается вторая часть, которая ищет индексы минимального и максимального элементов в матрице. Для этого используются два вложенных цикла
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
соответственно.
- Первый цикл
- После завершения второй части кода начинается третья часть, в которой происходит обмен местами наименьшего и наибольшего элементов. Для этого используется оператор присваивания
t:=A[imin,jmin];A[imin,jmin] := A[imax,jmax];A[imax,jmax] := t;
. Здесьt
является временной переменной, которая хранит значение наименьшего элемента, а затем присваивается наибольшему элементу, а значения наименьшего элемента обновляются на значения наибольшего элемента. - После завершения третьей части кода начинается четвертая и последняя часть, в которой выводится окончательное значение матрицы. Для этого используется еще один цикл
for
, который выполняется от 1 доn
(количество строк в матрице):- Внутри цикла выводятся значения каждой ячейки матрицы
A[i,j]
с помощью функцииWrite(A[i,j]:3,' ')
. - После завершения внутреннего цикла выводится символ новой строки
WriteLn;
. Таким образом, весь код выполняет следующие действия: создает матрицу случайных чисел, находит наименьший и наибольший элементы, меняет их местами и выводит окончательное значение матрицы.
- Внутри цикла выводятся значения каждой ячейки матрицы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д