Автор: Альберт 26.11.2003 3:06
Привет народ помогите, пожалуйста, решить задачу.
Нужно преобразовать матрицу, осуществив поворот элементов
вокруг его центра на 90 гр. против часовой стрелки.
1 2 3 3 3 3
Была матрица: 1 2 3 стала: 2 2 2
1 2 3 1 1 1
Мыльте кому не трудно на albert01@nyagan.wsnet.ru
Спасибо.
Автор: fms 28.11.2003 15:00
чего то не совсем понятно.. ((
Автор: trminator 28.11.2003 15:13
Дополнительный массив можно использовать? а то без него лениво...
Код
const n = 3;
var a, b : array[1..n, 1..n] of byte;
i, j : integer;
begin
{ввод матрицы}
writeln('input your matrix ', n, ' x ', n);
for i:=1 to n do for j:=1 to n do read(a[i,j]);
{переворот}
for i:=1 to n do
for j:=1 to n do b[j,i]:=a[i,j];
{вывод матрицы}
for i:=1 to n do begin
for j:=1 to n do write(B[i,j],' ');
writeln
end;
end.
Автор: APAL 28.11.2003 17:20
Цитата
Дополнительный массив можно использовать? а то без него лениво...
Этот вариант не правильный. Он поворачивают матрицу на 180 гр., а надо на 90....
Автор: GLuk 28.11.2003 17:55
2APAL: ДЫк, представил бы правильный вариант и вообще от тебя решений в последнее, да и в первое время: по-минимуму, а все-таки модер...
Конечно копаться в чужих легче, чем делать свои.
Автор: APAL 28.11.2003 19:35
Я над этой задачей уже думаю... Нашел немного материала в сети и не все так легко как кажется.
Автор: trminator 28.11.2003 23:59
APAL писАл: "этот вариант неправильный. Он поворачивают матрицу на 180 гр., а надо на 90.... "
Да он по ходу ее вообще транспонирует... ладно, сейчас исправим...
Автор: trminator 29.11.2003 0:13
Код
const n = 3;
var a, b : array[1..n, 1..n] of byte;
i, j : integer;
begin
{ввод матрицы}
writeln('input your matrix ', n, ' x ', n);
for i:=1 to n do for j:=1 to n do read(a[i,j]);
{переворот}
for i:=1 to n do
for j:=1 to n do b[n-j+1,i]:=a[i,j];
{вывод матрицы}
writeLn;
for i:=1 to n do begin
for j:=1 to n do write(B[i,j],' ');
writeln
end;
end.
Вроде так...
Тесты:
input your matrix 5 x 5
1 2 3 4 5
3 1 4 1 5
9 2 6 5 3
5 8 9 7 9
3 2 3 8 4
5 5 3 9 4
4 1 5 7 8
3 4 6 9 3
2 1 2 8 2
1 3 9 5 3
input your matrix 3 x 3
1 2 3
4 5 6
7 8 9
3 6 9
2 5 8
1 4 7
Оно?
Автор: fms 29.11.2003 0:49
хе. теперь понятно.. а то примеры странные написаны..))