uses crt;
const n=5;
type
Tmatr=^TTmatr;{указатель на матрицу}
TTmatr=array[1..n,1..n] of integer;{тип матрицы}
var
a:Tmatr;
i,j,k:integer;
x:integer;{буфер для обмена при транспонировании}
begin
clrscr;
randomize;
getmem(a,sizeof(TTmatr));{выделяем память под 1 матрицу}
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;
writeln;
{транспонируем по главной диагонали}
for i:=2 to n do
for j:=1 to i-1 do
begin
x:=a^[i,j];
a^[i,j]:=a^[j,i];
a^[j,i]:=x;
end;
writeln ('Транспонированная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
write(a^[i,j]:4);
writeln;
end;
freemem(a,sizeof(TTmatr));{высвобождаем память}
readln
end.