→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
как посчитать все итерации в циклах ? 
Автор Сообщение
Начинающий

Регистрация: 16.10.2011
Сообщения: 3
Языки:
Специальность:

Репутация: 0 [ ? ]
 как посчитать все итерации в циклах ?
Привет !

-Конечно, язык 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_LENGTH_MIN;

BASE_METRIC_LENGTH<=BASE_METRIC_LENGTH_MAX; BASE_METRIC_LENGTH+=BASE_METRIC_LENGTH_STEP) {if

(BASE_METRIC_LENGTH_con>BASE_METRIC_LENGTH_MIN) {BASE_METRIC_LENGTH=BASE_METRIC_LENGTH_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_INACCURACY_MAX;

MINIMAL_PROFIT_METRIC_PIPS_MAX0=MINIMAL_PROFIT_METRIC_PIPS_MAX;

METRIC_INACCURACY_MAX0=METRIC_INACCURACY_MAX;} else

{WALL_INACCURACY_MAX0=WALL_INACCURACY_MIN;

MINIMAL_PROFIT_METRIC_PIPS_MAX0=MINIMAL_PROFIT_METRIC_PIPS_MIN;

METRIC_INACCURACY_MAX0=METRIC_INACCURACY_MIN;}

i++;

}}}}}}
* * * конец фрагмента кода * * *

- если учесть, что преднамеренного первого сдвига значений в цикле не происходит, то

высчитать общее конечное число итераций для самого нижнего из циклов могу и я

а вот, как сделать, чтобы можно было подсчитать с точностью до +/- 1 цикла всё это, учитывая

возможный первый неправильный старт каждого из циклов ?

другими словами - чему рвно "i" (этот ответ нужно дать не проводя поцикловой подсчёт как

вывидите выше, т.к. это долго)


16.10.2011 2:01
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
© 2013 «Форум программистов Украины»