Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Внизповорот массива Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 7.652 c