Переставить местами два заданных столбца матрицы - Pascal

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

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

В матрице A[1..n,1..n] переставить местами два заданных столбца.
сonst
    n = 5;//строки
    m=6;//столбцы
var
    a: array[1..n,1..m] of integer;
    i,j,h,k:integer;
begin
randomize;
y:=0;
for i := 1 to n do //рандом
for j:=1 to m do
a[i,j]:=random(50);
 
write('Введите столбцы для перестановки');
readln(k,h);

for i:=1 to n do      //Вывод массива
begin
for j:=1 to m do
begin
write(a[i, j]:5);
end;
writeln
end;
end.
}

Решение задачи: «Переставить местами два заданных столбца матрицы»

textual
Листинг программы
const
n=3;
var 
  arr:array [1..n,1..n] of integer;
  i,j,tmp:integer;
  col1,col2:integer;
begin
  for i:=1 to n do
  begin
      for j:=1 to n do
      begin
        arr[i,j]:=random(n)+1;
        write(arr[i,j],' ');
      end;
      writeln();
  end;
  //-----------
  write('Какую колонку поменять:');readln(col1);
  write('За место какой колонки вставить:');readln(col2);
  for i:=1 to n do
  begin
      swap(arr[i,col1],arr[i,col2]);
  end;
  //-----------
  for i:=1 to n do
  begin
    for j:=1 to n do
    begin
      write(arr[i,j],' ');
    end;
    writeln();
  end;
end.

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

В данном коде объявлены следующие переменные:

  • n - количество строк в матрице (в данном случае равно 3)
  • arr - матрица, в которой будут переставлены столбцы
  • i - номер строки в первой (левой) части матрицы
  • j - номер строки во второй (правой) части матрицы
  • tmp - временная переменная для обмена элементов
  • col1 - номер столбца, который нужно поменять местами
  • col2 - номер столбца, на место которого нужно поставить элемент из предыдущего столбца В первом блоке кода происходит инициализация матрицы случайными числами от 1 до n. Затем выводится сообщение с просьбой выбрать колонку для обмена и номер столбца, который нужно поменять местами. Во втором блоке кода происходит обмен элементов между выбранными столбцами. Для этого используется функция swap, которая меняет местами элементы двух массивов. В третьем блоке кода происходит вывод переставленной матрицы.

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

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