Заполнение матрицы осуществляется посредством генератора случайных чисел.
а) главная диагональ:
{ транспонирование матрицы относительно главной диагонали }
uses crt;
const
n = 100;
var
mas: array [1 .. n, 1 .. n] of integer;
i, j, l: byte;
prom: integer;
begin
randomize; { процедура инициализации генератора случайных чисел }
clrscr;
write('введите размер матрицы: '); { ввод размеров матрицы }
readln(l);
writeln;
writeln('исходная матрица: ', ^j); { вывод исходной матрицы на экран }
for i := 1 to l do
begin
for j := 1 to l do
begin
mas[i, j] := random(19);
mas[i, j] := mas[i, j] - 9;
write(mas[i, j]:3);
end;
writeln;
end;
writeln;
for i := 2 to l do { сам процесс транспонирования }
for j := 1 to i - 1 do
begin
prom := mas[i, j];
mas[i, j] := mas[j, i];
mas[j, i] := prom;
end;
writeln('результат транспонирования: ', ^j);
{ вывод матрицы после преобразований }
for i := 1 to l do
begin
for j := 1 to l do
write(mas[i, j]:3);
writeln;
end;
end.
б) побочная диагональ:
{ транспонирование матрицы относительно побочной диагонали }
uses crt;
const
n = 100;
var
mas: array [1 .. n, 1 .. n] of integer;
i, j, l: byte;
prom: integer;
begin
randomize; { процедура инициализации генератора случайных чисел }
clrscr;
write('введите размер матрицы: '); { ввод размеров матрицы }
readln(l);
writeln;
writeln('исходная матрица: ', ^j); { вывод исходной матрицы на экран }
for i := 1 to l do
begin
for j := 1 to l do
begin
mas[i, j] := random(19);
mas[i, j] := mas[i, j] - 9;
write(mas[i, j]:3);
end;
writeln;
end;
writeln;
for i := 1 to l - 1 do { сам процесс транспонирования }
for j := l - i downto 1 do
begin
prom := mas[i, j];
mas[i, j] := mas[l - j + 1, l - i + 1];
mas[l - j + 1, l - i + 1] := prom;
end;
writeln('результат транспонирования: ', ^j);
{ вывод матрицы после преобразований }
for i := 1 to l do
begin
for j := 1 to l do
write(mas[i, j]:3);
writeln;
end;
end.