Переставить местами два заданных столбца матрицы - 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, которая меняет местами элементы двух массивов. В третьем блоке кода происходит вывод переставленной матрицы.