Многомерная индесация одномерного массива

Алгоритмы: от сортировки пузырьком до численных методов

Модераторы: C_O_D_E, DeeJayC

Ответить
atavin-ta
Сообщения: 572
Зарегистрирован: 30 янв 2009, 06:38

23 окт 2009, 10:31

Есть класс, с закрытым членом - динамическим одномерным массивом. Этот класс должен использоваться как контейнер, заменяющий многомерный массив. Причём, диапазоны одних индексов зависят от значений других. Например, опишем в дерактовой прямоугольной системе координат усечённый круговой конус, разобъём его на прямоугольные параллепиидальные ячеки и каждой ячейке сопоставим элемент массива, а индесами назначим коордианты центров ячеек по осям в единицах размера ячеек. Киньте идею, как сделать пересчёт трёх индексов в один в функции-члене get этого класса для доступа к каждому элеметну массива и расчёт числа ячеек по размерам самих ячеек и описываемых тел в функции члене resize того же класса в следующих вариантах:
1. круговой цилиндр,
2. Круговой конус,
3. шар.
И как для этих же вариантов расчистать число ячеек по размерам ячеек и описываемых тел. Тему можно поднимать при любой давности.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
anawsCreend
Сообщения: 10
Зарегистрирован: 09 дек 2009, 15:31
Откуда: Россия
Контактная информация:

20 дек 2009, 03:23

Вопрос на ночь глядя. Есть многомерный массив, например:

array11 = 1;
array12 = 2;
array135 = 5;

Есть функция, которую нужно применить ко всем значениям этого ацкого массива, но при этом сохранить сам массив как есть.

Ясно вижу, что нужно писать функцию, которая бы принимала массив, обрабатывала его и возвращала обработанный. У меня пока вариантов нет. array_filter не предлагать.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

21 дек 2009, 09:51

array_walk?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить