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