Транспонирование матрицы относительно главной и побочной диагоналей

Заполнение матрицы осуществляется посредством генератора случайных чисел.

а) главная диагональ:

code: #pascal
{транспонирование матрицы относительно главной диагонали}
 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.

б) побочная диагональ:

code: #pascal
{транспонирование матрицы относительно побочной диагонали}
 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.

автор: yanyk1n

Поделиться:

Похожие статьи: