Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

поворот массива   Найти похожие ветки 

 
SeF   (2004-05-26 22:16) [0]

Доброе время суток!
возникла проблема:
необходимо "повернуть" на 90 градусов по часовой стрелке массив(допустим 5 на 5).
Понимаю что это просто но от этого мыслей не прибовляется...
Подскажите где копать....


 
jack128 ©   (2004-05-26 22:26) [1]

const
 MatrixSize = 5;
type
 TMatrix = array[0..MatrixSize - 1, 0..MatrixSize - 1] of Integer;

function TurnMatrix(m: TMatrix): TMatrix;
var
 i, j: Integer;
begin
 for i := 0 to MatrixSize - 1 do
   for j := 0 to MatrixSize - 1 do
     Result[i, j] := m[MatrixSize - j - 1, i];
end;


 
Vasya.ru   (2004-05-27 00:08) [2]

необходимо "повернуть" на 90 градусов по часовой стрелке массив(допустим 5 на 5).
Транспонировать матрицу чтоли надо?


 
SeF   (2004-05-27 00:35) [3]

> jack128
Большое спасибо!


 
Sha ©   (2004-05-27 09:31) [4]

SeF   (27.05.04 00:35) [3]

Предостережение.
Учти, что в приведенном решении подразумевается, что исходный и результируюий массивы - это разные массивы.
Нельзя использовать это решение, напрмер, так: a:=TurnMatrix(a).


 
jack128 ©   (2004-05-27 09:42) [5]


> Нельзя использовать это решение, напрмер, так: a:=TurnMatrix(a).
а если подумать? ;-)


 
Sha ©   (2004-05-28 10:03) [6]

jack128 ©   (27.05.04 09:42) [5]

Подумал. Да, действительно, можно.
Мне и в голову не могло прийти, что кто-нибудь так может работать с массивами :)

В приведенном решении массив будет выполняться предварительное копирование массива. Это хорошо только в качестве учебного примера.


 
SergP ©   (2004-05-28 10:09) [7]

Хм...
Зачем что-то копировать и т.д. если можно работать с тем же самым массивом, просто по другому использовать индексы...


 
Sha ©   (2004-05-28 10:24) [8]

SergP ©   (28.05.04 10:09) [7]

Я так обычно и делаю. Поэтому и просмотрел отсутствие var/const в объявлении параметров.



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
14-1085377332
Иксик
2004-05-24 09:42
2004.06.13
Ветка про Израиль.


4-1083835490
webpauk
2004-05-06 13:24
2004.06.13
Данные из чужого окна


14-1085740950
syte_ser78
2004-05-28 14:42
2004.06.13
Плагиат?


14-1085659720
Вячеслав
2004-05-27 16:08
2004.06.13
Delphi+Autocad


4-1083837808
Miroslav
2004-05-06 14:03
2004.06.13
Выключение Windows