Транспонирование матрицы относительно главной и побочной диагоналей — 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.

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

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

Leave a Comment

− 1 = 4