есть матрица квадратная. размерность 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;
Lapp
2.12.2009 22:41
Цитата(Mavra @ 2.12.2009 18:08)
есть матрица квадратная. размерность 2*n поменять по часовой стрелке ее блоки размерами n*n подскажите в чем ошибка
вот так попробуй:
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 мин. А при чем тут Делфи?..
М
Переношу в Задачи.
Пожалуйста, относись к выбору раздела ответственнее, не заставляй других делать за тебя..
Mavra
2.12.2009 22:48
вся матрица заполняется левой половиной первой строки...
Добавлено через 5 мин. правильно перемещается только первая строка из B и из D
Lapp
2.12.2009 22:54
н-да, что-то у меня крыша едет... простите, плиз. Вот так, конечно:
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;
Сорри
Добавлено через 2 мин.
Цитата(Mavra @ 2.12.2009 18:48)
вся матрица заполняется левой половиной первой строки...
Что?.. Ты про что? про мою программу?... Будь так добра, пожалуйста, если тебе не очень трудно, приведи полный код.