Заменить наименьший элемент каждой строки матрицы, начиная со второй, наибольшим элементом предыдущей строки. - Turbo Pascal
Формулировка задачи:
Дана прямоугольная матрица A(n*m). Заменить наименьший элемент каждой строки, начиная со второй, наибольшим элементом предыдущей строки.
Решение задачи: «Заменить наименьший элемент каждой строки матрицы, начиная со второй, наибольшим элементом предыдущей строки.»
textual
Листинг программы
- uses crt;
- const nmax=15;
- var a:array[1..nmax,1..nmax] of integer;
- m,n,i,j,jmn:byte;
- mn,mx:integer;
- begin
- clrscr;
- randomize;
- repeat
- write('Количество строк до ',nmax,' n=');
- readln(n);
- until n in [1..nmax];
- repeat
- write('Количество столбцов до ',nmax,' m=');
- readln(m);
- until m in [1..nmax];
- writeln('Исходная матрица:');
- for i:=1 to n do
- begin
- for j:=1 to m do
- begin
- a[i,j]:=random(20);
- write(a[i,j]:4);
- end;
- writeln;
- end;
- for i:=n downto 2 do
- begin
- jmn:=1;
- for j:=2 to m do
- if a[i,j]<a[i,jmn] then jmn:=j;
- mx:=a[i-1,1];
- for j:=2 to m do
- if a[i-1,j]>mx then mx:=a[i-1,j];
- a[i,jmn]:=mx;
- end;
- writeln('Измененная матрица');
- for i:=1 to n do
- begin
- for j:=1 to m do
- write(a[i,j]:4);
- writeln;
- end;
- readln
- end.
Объяснение кода листинга программы
- Создается переменная
nmax
со значением 15. - Создается переменная
a
типаarray[1..nmax,1..nmax] of integer;
. - Создаются три переменные
m
,n
иi
типаbyte;
. - Создается переменная
mn
и инициализируется значением 0. - Создается переменная
mx
и инициализируется значением 0. - Выполняется цикл
repeat
, который запрашивает у пользователя количество строк и столбцов матрицы. - Внутри цикла
repeat
выводится сообщение с запрошенными значениями. - Выполняется цикл
for
, который начинается с индекса строки 1 и продолжается до индекса строки 2. - Внутри цикла
for
выполняется циклfor
, который начинается с индекса столбца 1 и продолжается до индекса столбцаm
. - Внутри внутреннего цикла проверяется условие
if a[i,j]<a[i,jmn]
и если оно истинно, то значение переменнойjmn
устанавливается равным значению переменнойj
. - Если условие
if a[i-1,j]>mx
истинно, то значение переменнойmx
устанавливается равным значению переменнойa[i-1,j]
. - Значение переменной
a[i,jmn]
устанавливается равным значению переменнойmx
. - Выполняется цикл
for
, который начинается с индекса строки 1 и продолжается до индекса строки 2. - После окончания внутреннего цикла выводится сообщение с измененной матрицей.
- Выполняется цикл
for
, который начинается с индекса строки 1 и продолжается до индекса строки 2. - После окончания внешнего цикла выводится сообщение с исходной матрицей.
- Выполняется цикл
readln
, чтобы дождаться ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д