[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 22
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Люди, помогите разобраться!
Пишу такой код (это фрагмент), все переменные и массивы заданы, счетчик считает. Первоначально countDH=0. Но есть проблема, в массив xDelH ничего не записывается. Вывод через Print (High[j], Time[j], countDH) дает правильные результаты, а xDelH[countDH][0] всегда выдает 0. Проверка через размер массива тоже дает 0.
Даже если написать xDelH[countDH][0]=0,01; все равно выдает 0. Чтобы я не делал, в каком бы месте не поставил этот код, он нигде не работает.
Из-за чего это может быть? В чем причина? Пожалуйста, помогите!
Люди, помогите разобраться!
Пишу такой код (это фрагмент), все переменные и массивы заданы, счетчик считает. Но есть проблема в массив xDelH ничего не записывается. Вывод через Print (High[j], Time[j], countDH) дает правильные результаты, а xDelH[countDH][0] всегда выдает 0. Проверка через размер массива тоже дает 0. Из-за чего это может быть? В чем причина? Пожалуйста, помогите!
Даже если написать xDelH[countDH][0]=0,01; все равно выдает 0
Проверьте, является ли xDelH типом double. Находится ли этот if внутри for. Оператор break как-то не правильно у вас помещён. А если сделаете как ниже, что будет
Люди, помогите разобраться!
Пишу такой код (это фрагмент), все переменные и массивы заданы, счетчик считает. Первоначально countDH=0. Но есть проблема, в массив xDelH ничего не записывается. Вывод через Print (High[j], Time[j], countDH) дает правильные результаты, а xDelH[countDH][0] всегда выдает 0. Проверка через размер массива тоже дает 0.
Даже если написать xDelH[countDH][0]=0,01; все равно выдает 0. Чтобы я не делал, в каком бы месте не поставил этот код, он нигде не работает.
Из-за чего это может быть? В чем причина? Пожалуйста, помогите!
У меня double xDelH[][2]; if находится в двух for, один из которых перебирает j. Написаный вами код работает - выдает 0,01
В Вашем варианте размер массива не задан в 0-ом измерении, а в приведённом примере задан:
Спасибо! Все заработало. Выделил размер следующим образом: ArrayResize(xDelH,100);
Возник еще один вопрос: если массив заполнит все 100 ячеек, а countDH будет считать например до 120, то размер массива будет автоматически увеличиваться до 120 или прийдется регулярно изменять размер массива другим способом?
Спасибо! Все заработало. Выделил размер следующим образом: ArrayResize(xDelH,100);
Возник еще один вопрос: если массив заполнит все 100 ячеек, а countDH будет считать например до 120, то размер массива будет автоматически увеличиваться до 120 или прийдется регулярно изменять размер массива другим способом?
Автоматом ничего делаться не будет. При необходимости:
Автоматом ничего делаться не будет. При необходимости:
Спасибо!
Как вариант можно сразу задать больше ячеек, напр. 1000 если знаете что более 1000 не будет. Если вы массив заполняете внутри for, то в этом же for определяете максимальное число итераций и перед for можно изменять размер массива, напр.:
Как вариант можно сразу задать больше ячеек, напр. 1000 если знаете что более 1000 не будет. Если вы массив заполняете внутри for, то в этом же for определяете максимальное число итераций и перед for можно изменять размер массива, напр.:
У меня по коду удобнее определять кол-во итераций через ArrayRange.
А почему если написать xDelH[countDH][0]=HBar[countH][0]; , то будет выдаваться 0 (хотя HBar[countH][0] уже заполнен и имеет свое значение) . Так вообще можно делать?