Поменяйте местами элементы матрицы, стоящие на главной и побочной диагонали - Turbo Pascal
Формулировка задачи:
Дан квадратный массив. Поменяйте местами элементы, стоящие на главной и побочной диагонали, при этом каждый элемент должен остаться в том же столбце (то есть в каждом столбце нужно поменять местами элемент на главной диагонали и на побочной диагонали).
Решение оформите в виде функции SwapDiagonals (A).
Примеры
входные данные
3
1 2 3
4 5 6
7 8 9
выходные данные
7 2 9
4 5 6
1 8 3
Решение задачи: «Поменяйте местами элементы матрицы, стоящие на главной и побочной диагонали»
textual
Листинг программы
uses crt;
const nmax=20;
type matr=array[1..nmax,1..nmax] of integer;
procedure SwapDiagonals(var a:matr;n:byte);
var i,j:byte;
x:integer;
begin
for i:=1 to n do
begin
x:=a[i,i];
a[i,i]:=a[n-i+1,i];
a[n-i+1,i]:=x;
end;
writeln('Обмен диагошальных элементов');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
end;
var a:matr;
n,i,j:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(50);
write(a[i,j]:4);
end;
writeln;
end;
SwapDiagonals(a,n);
readln
end.
Объяснение кода листинга программы
- Создаётся тип данных
matr, который представляет собой массив целых чисел размером от 1 до 20. - В процедуре
SwapDiagonalsиспользуется переменнаяaтипаmatrи один байтnдля определения размера матрицы. - Внутри цикла
forпроисходит обмен элементов главной и побочной диагоналей матрицыa. - После выполнения обмена, выводится сообщение «Обмен диагональных элементов» и происходит вывод элементов матрицы
aв консоль. - Далее, создаётся переменная
aтипаmatrи переменныеn,iиjцелого типа. - В цикле
repeatсчитывается размер матрицы от пользователя. - В цикле
forпроисходит заполнение матрицы случайными числами от 0 до 99. - После заполнения матрицы, вызывается процедура
SwapDiagonalsс переменнойaи размером матрицы. - После выполнения процедуры, выводится сообщение «Исходная матрица:».
- Выводится заполненная матрица в консоль.