Глупости, двухмерного массива вполне хватит: arr[строки][столбцы]
Да и зачем вам массив - вы же не вручную его собираетесь заполнять ?
рассчитывайте коэффициенты на лету и применяйте.
в двумерный три значения не укладываются. с размерностью я разобрался.. но осталось цикл правильно написать.
А покажите, как Вы пытаетесь заполнить 3-ёх мерный массив? Или просто 3 массива создайте и в одном цикле по индексу проверяйте значения.
Размерность 5*1000*1000
Тут еще проблема в том, что динамическим может быть только одно измерение. Но если они изменяться не будут, тогда можно тупо прописать.
double D1Min = 1; double D1Max = 5; #define D1RANGE 5 double D2Min = 0.1; double D2Max = 100; #define D2RANGE 1000 double D3Min = 0.1; double D3Max = 100; #define D3RANGE 1000 double arr[D1RANGE][D2RANGE][D3RANGE]; double Get(double v1, double v2, double v3) { int i1 = (v1 - D1Min)/(D1Max - D1Min)*(D1RANGE - 0.5); int i2 = (v2 - D2Min)/(D2Max - D2Min)*(D1RANGE - 0.5); int i3 = (v3 - D3Min)/(D3Max - D3Min)*(D1RANGE - 0.5); // assert (i1 >= 0 && i1 < D1RANGE); // assert (i2 >= 0 && i2 < D2RANGE); // assert (i3 >= 0 && i3 < D3RANGE); return (arr[i1][i2][i3]); } int start() { ArrayInitialize(arr, 0); //... заполняем массив статистикой Print(Get(1,0.1,0.1)); }
Помогите пожалуйста.Написал цикл поиска медвежьих свечей.Теперь нужно найти второе значение "i".
for(int i=5; i>1; i--)
можно так,
"вернуть индекс n-ной медвежьей свечи"
int RecursiveBearish(int nth,int from=0,ENUM_TIMEFRAMES tf=PERIOD_CURRENT,string symbol="")
{
if (iClose(symbol,tf,from)<iOpen(symbol,tf,from)) {
--nth;
if (nth<=0) return from;
}
return RecursiveBearish(nth,from+1,tf,symbol);
}
:-)
Чтобы не путаться с размерностями массивов, лучше иметь перед глазами визуальную картинку логики построения n-мерного массива. Иными словами, нужно ВИДЕТЬ, что это такое. Трудные ситуации разбираются на простых моделях. Построим такую модель.
Одномерный массив. Он подобен координатной прямой. Одной из лучших визуальных моделей может являться шеренга. У каждого человека этой шеренги есть свой порядковый номер. Положение элемента в одномерном массиве задаётся всего одной координатой - порядковым номером элемента в шеренге.
Двумерный массив. Он подобен координатной плоскости. Для задания местоположения любого элемента задействуются уже 2 координаты: порядковый номер в шеренге и номер шеренги. Одной из лучших визуальных моделей двумерного массива является зрительный зал в кинотеатре. Вы покупаете билет в кино. На билете написано Ваше ряд и место - координаты элемента двумерного массива.
Трёхмерный массив. Он подобен координатному кубу. Это ряд, место и номер яруса в театре. Итак, мы уже имеем три координаты для задания местоположения элемента в массиве.
Четырёхмерный массив - это шеренга координатных кубов.
Пятимерный массив - это координатная плоскость, состоящая из трёхмерных кубов.
Шестимерный массив - это координатный куб, состоящий из координатных кубов.
Можно упростить. Модель одномерного массива - это линия. Модель двумерного - это плоскость, модель трёхмерного - это объём. Модель четырёхмерного - это линия, состоящая из объёмов. Всё, круг замкнулся. Далее по принципу подобия.
Этой модели вполне достаточно, чтоб не путаться в любой мерности массива.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Сложная задача.. сам себе мозги кручу. Делаю эксперт по паттернам свечным. И надо создать массив данных, где строка будет принимать значения тела свечи от 1 до 5. А два следующих столбца тени верхняя тень 0.1 до 100 и нижняя тень от 0.1 до 100 Вид массива должен получиться такой massiv[][][], если я не ошибаюсь
Как расчитать размерность и как заполнить его ? Сколько там должно быть элементов. Это не сложно, но с трехмерными массивами мой мозг сел за ночь бессоницы ... теперь я вообще ничего не соображаю