В прямоугольной матрице поменять местами столбец, содержащий наибольшее значение, с последним столбцом - 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. Создаётся матрица размером от 1 до 15 строк и 1 до 15 столбцов.
  2. Задаются переменные m и n для хранения количества строк и столбцов соответственно.
  3. Инициализируется массив a целыми числами в диапазоне от -128 до 127.
  4. Задаются переменные mx и jmx для хранения текущего максимального элемента и его столбца.
  5. Запускается цикл, который заполняет матрицу случайными числами.
  6. Проверяется, что текущий максимум не находится в последнем столбце. Если это так, то обмениваем его местами с последним столбцом.
  7. Проверяется, что текущий максимум не находится в последнем столбце. Если это так, то обмениваем его местами с последним столбцом.
  8. Выводится сообщение о том, что обмен произошел.
  9. Выводится исходная матрица.
  10. Выводится максимальное значение и его столбец.
  11. Выводится сообщение о том, что обмен не произошел.
  12. Выводится обновленная матрица.

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


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

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

10   голосов , оценка 3.7 из 5
Похожие ответы