Главная страница
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.056 c
3-1084975394
Rouse_
2004-05-19 18:03
2004.06.13
Что-то не понятное с размером базы творится...


14-1085519359
Thor
2004-05-26 01:09
2004.06.13
X Files - чем дело закончилось?


11-1075121861
sams
2004-01-26 15:57
2004.06.13
Наследование


6-1082630675
andrysha
2004-04-22 14:44
2004.06.13
Переслать файл по сети на delphi7


1-1085749601
Иван Второй
2004-05-28 17:06
2004.06.13
Транспонировать массив из бит.