С помощью указателя на матрицу транспонировать матрицу 5х5 — Pascal(Паскаль)

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.

Leave a Comment

2 + 5 =