Дана действительная квадратная матрица порядка 2n. Получить новую матриц, переставляя её блоки по диагонали размера n*n

code: #pascal
  1. Program matritza;
  2.  const
  3.  n=4;
  4.  var
  5.  i,j:integer;
  6.  a:array[1..2*n,1..2*n] of integer;
  7.  p:integer;
  8.  begin
  9.  //ввод
  10.  for i:=1 to 2*n do
  11.  begin
  12.  for j:=1 to 2*n do
  13.  begin
  14.  read(a[i,j]);
  15.  write(' ');
  16.  end;
  17.  writeln;
  18.  end;
  19.  // изменения блоков
  20.  for i:=1 to n do
  21.  for j:=i to n do
  22.  begin
  23.  // блок 1
  24.  p:=a[j,i];
  25.  a[j,i]:=a[i,j];
  26.  a[i,j]:=p;
  27.  //блок 2
  28.  p:=a[j+n,i];
  29.  a[j+n,i]:=a[i+n,j];
  30.  a[i+n,j]:=p;
  31.  //блок 3
  32.  p:=a[j,i+n];
  33.  a[j,i+n]:=a[i,j+n];
  34.  a[i,j+n]:=p;
  35.  //блок 4
  36.  p:=a[j+n,i+n];
  37.  a[j+n,i+n]:=a[i+n,j+n];
  38.  a[i+n,j+n]:=p;
  39.  end;
  40.  //вывод
  41.  for i:=1 to 2*n do
  42.  begin
  43.  for j:=1 to 2*n do
  44.  write(a[i,j],' ');
  45.  writeln;
  46.  end;
  47.  end.
Поделиться:

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