|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.10.2011, 03:58 | #1 |
Пользователь
Регистрация: 02.12.2009
Сообщений: 10
|
как посчитать все итерации в циклах ?
Привет !
-Конечно, язык MQL4 отличается от C++, но в целом синтаксис и базовая часть идентичны, и поскольку не было подходящей ветки, я запостился именно здесь. Вопрос не простой: есть несколько циклов - это число постоянное один цикл вложен в другой и так далее по цепочке для каждого из этих циклов известны: минимальное значение, максимальное значение, шаг, значение, с которого следует продолжить цикл (т.е. оно срабатывает только один раз при старте программы с этими циклами) i=0; for (c4=min[4]; c4<=lev[4]; c4+=st[4]) //L4 { for (c3=min[3]; c3<=lev[3]; c3+=st[3]) //L3 { for (c2=min[2]; c2<=lev[2]; c2+=st[2]) //L2 { for (c1=min[1]; c1<=lev[1]; c1+=st[1]) i++; //L1 } } } - чему будет равняться переменная i, если при старте первый раз каждый цикл будет начинаться не с начала, а с некоторого значения, входящего в диапазон работы цикла вот кусок рабочего кода (переменные с префиксом _con 0 -это указатель начала работы цикла только первый раз!): * * * начало фрагмента кода * * * i=0; Print (""); Print (" * * * THE START OF TRACE * * *"); Print (""); if (AUTOCALC==1 && time_point<1) Print ("Ждите значения времени проведения тестирования для одной точки входа в тренд..."); //^^^^^^^^^^^^^^^^^^^^^^^^^^^^ НАЧАЛО ПЕРЕБОРА ЗНАЧЕНИЙ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ for (TRADE_LAG=TRADE_LAG_MIN; TRADE_LAG<=TRADE_LAG_MAX; TRADE_LAG+=TRADE_LAG_STEP) {if (TRADE_LAG_con>TRADE_LAG_MIN) {TRADE_LAG=TRADE_LAG_con; TRADE_LAG_con=-2000;} for (SILENCE_TCK=SILENCE_TCK_MIN; SILENCE_TCK<=SILENCE_TCK_MAX; SILENCE_TCK+=SILENCE_TCK_STEP) {if (SILENCE_TCK_con>SILENCE_TCK_MIN) {SILENCE_TCK=SILENCE_TCK_con; SILENCE_TCK_con=-2000;} for (BASE_METRIC_LENGTH=BASE_METRIC_LEN GTH_MIN; BASE_METRIC_LENGTH<=BASE_METRIC_LEN GTH_MAX; BASE_METRIC_LENGTH+=BASE_METRIC_LEN GTH_STEP) {if (BASE_METRIC_LENGTH_con>BASE_METRIC _LENGTH_MIN) {BASE_METRIC_LENGTH=BASE_METRIC_LEN GTH_con; BASE_METRIC_LENGTH_con=-2000;} if (TRADE_LAG==2 && BASE_METRIC_LENGTH>SILENCE_TCK) {OLD_BML=BASE_METRIC_LENGTH; BASE_METRIC_LENGTH=SILENCE_TCK;} else OLD_BML=-1; for (UMDC_USE=UMDC_USE_MIN; UMDC_USE<=UMDC_USE_MAX; UMDC_USE++) {if (UMDC_USE_con>UMDC_USE_MIN) {UMDC_USE=UMDC_USE_con; UMDC_USE_con=-2000;} for (USE_FM=USE_FM_MIN; USE_FM<=USE_FM_MAX; USE_FM++) {if (USE_FM_con>USE_FM_MIN) {USE_FM=USE_FM_con; USE_FM_con=-2000;} if (USE_FM==1) {WALL_INACCURACY_MAX0=WALL_INACCURA CY_MAX; MINIMAL_PROFIT_METRIC_PIPS_MAX0=MIN IMAL_PROFIT_METRIC_PIPS_MAX; METRIC_INACCURACY_MAX0=METRIC_INACC URACY_MAX;} else {WALL_INACCURACY_MAX0=WALL_INACCURA CY_MIN; MINIMAL_PROFIT_METRIC_PIPS_MAX0=MIN IMAL_PROFIT_METRIC_PIPS_MIN; METRIC_INACCURACY_MAX0=METRIC_INACC URACY_MIN;} i++; }}}}}} * * * конец фрагмента кода * * * - если учесть, что преднамеренного первого сдвига значений в цикле не происходит, то высчитать общее конечное число итераций для самого нижнего из циклов могу и я а вот, как сделать, чтобы можно было подсчитать с точностью до +/- 1 цикла всё это, учитывая возможный первый неправильный старт каждого из циклов ? другими словами - чему рвно "i" (этот ответ нужно дать не проводя поцикловой подсчёт как вывидите выше, т.к. это долго) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как посчитать все итерации в циклах ? | a_cre | Общие вопросы C/C++ | 3 | 15.10.2011 06:46 |
(JAVA) ИТЕРАЦИИ ПО СПИСКУ КОТОРЫЙ ВСЕ ВРЕМЯ МЕНЯЕТСЯ | LadyDisco | Помощь студентам | 1 | 26.05.2011 16:26 |
решение как мне кажется должно быть методом итерации или(и) дихотомии...)))) | Varv | Помощь студентам | 3 | 30.01.2011 10:55 |
Как на каждой итерации цикла создавать новый файл одной командой? | atg | Общие вопросы C/C++ | 2 | 24.09.2009 15:02 |
Паскаль. найти все числа кратные трем и посчитать их количество | __k1ll3r__ | Помощь студентам | 6 | 02.04.2008 16:37 |