есть матрица квадратная. размерность 2*n
поменять по часовой стрелке ее блоки размерами n*n
подскажите в чем ошибка
procedure Smena(var A,B:matrix; n,m:integer);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to n do
B[i,j+n]:=A[i,j];
for i:=1 to n do
for j:=n+1 to m do
B[i+n,j]:=A[i,j];
for i:=n+1 to m do
for j:=n+1 to m do
B[i,j-n]:=A[i,j];
for i:=n+1 to m do
for j:=1 to n do
B[i-n,j]:=A[i,j];
end;
procedure Smena(var A,B:matrix; n:integer);
var
i,j:integer;
begin
{
A B
D C
}
for i:=1 to n do for j:=1 to n do B[i ,j+n] := A[i ,j ]; {A -> B}
for i:=1 to n do for j:=1 to n do B[i+n,j+n] := A[i ,j+n]; {B -> C}
for i:=1 to n do for j:=1 to n do B[i+n,j ] := A[i+n,j+n]; {C -> D}
for i:=1 to n do for j:=1 to n do B[i ,j ] := A[i+n,j ]; {D -> A}
end;
М | Переношу в Задачи. |
вся матрица заполняется левой половиной первой строки...
Добавлено через 5 мин.
правильно перемещается только первая строка из B и из D
н-да, что-то у меня крыша едет... простите, плиз.
Вот так, конечно:
procedure Smena(var A,B:matrix; n:integer);
var
i,j:integer;
begin
{
A B
D C
}
for i:=1 to n do for j:=1 to n do begin
B[i ,j+n] := A[i ,j ]; {A -> B}
B[i+n,j+n] := A[i ,j+n]; {B -> C}
B[i+n,j ] := A[i+n,j+n]; {C -> D}
B[i ,j ] := A[i+n,j ]; {D -> A}
end;
end;
спасибо.
значит буду искать ошибку у себя.
Добавлено через 6 мин.
спасибо. Вы помогли найти мне ошибку совсем не там, где я искала.