Дана действительная квадратная матрица порядка 2n. Получить новую матриц, переставляя её блоки по диагонали размера n*n
Категория: Delphi/Pascal
2011-08-28 20:57:11
code: #pascal
- Program matritza;
- const
- n=4;
- var
- i,j:integer;
- a:array[1..2*n,1..2*n] of integer;
- p:integer;
- begin
- //ввод
- for i:=1 to 2*n do
- begin
- for j:=1 to 2*n do
- begin
- read(a[i,j]);
- write(' ');
- end;
- writeln;
- end;
- // изменения блоков
- for i:=1 to n do
- for j:=i to n do
- begin
- // блок 1
- p:=a[j,i];
- a[j,i]:=a[i,j];
- a[i,j]:=p;
- //блок 2
- p:=a[j+n,i];
- a[j+n,i]:=a[i+n,j];
- a[i+n,j]:=p;
- //блок 3
- p:=a[j,i+n];
- a[j,i+n]:=a[i,j+n];
- a[i,j+n]:=p;
- //блок 4
- p:=a[j+n,i+n];
- a[j+n,i+n]:=a[i+n,j+n];
- a[i+n,j+n]:=p;
- end;
- //вывод
- for i:=1 to 2*n do
- begin
- for j:=1 to 2*n do
- write(a[i,j],' ');
- writeln;
- end;
- end.
Поделиться: