[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 208

 
При моем видении это БЫЛ ПЕРЕДАВАЕМЫЙ ПАРАМЕТР))))),ну ни как без него))). Спасибо, исправил заработало.
 
Aleksander:

уважаемый... незачем такими крупными буквами тут писать... а то и глаза можно сломать :-)

и это... прежде чем вопросы задавать.. ты не пробовал в Метаедиторе СПРАВКУ прочитать? ВСЮ? для начала... чтобы не задавать глупостей насчёт типов и прочего....

===

Тип операций для функции OrderSend(). Mожет быть любым из следующих величин:

Константа Значение Описание
OP_BUY 0 Покупка
OP_SELL 1 Продажа
OP_BUYLIMIT 2 Отложенный ордер BUY LIMIT
OP_SELLLIMIT 3 Отложенный ордер SELL LIMIT
OP_BUYSTOP 4 Отложенный ордер BUY STOP
OP_SELLSTOP 5 Отложенный ордер SELL STOP
Уважаемый... незачем здесь понты колотить... если что-то тебе кажется глупостью, не надо отвечать, дай бог найдутся люди без мании величия... здесь раздел для новичков и если люди о чем-то спрашивают, значит им это не понятно... Далее: если бы в справке и в книге было бы все понятно написано, меня бы здесь не было.
Теперь по сути: допустим, что у нас есть 3 ордера и все рыночные. Тогда при 3-х итерациях мы не попадем в блок 4 ни в одной из них. А после последней итерациисразу перейдем в блок 5, минуя блок 4. В блоке 5 присутствует переменная Tip, к-я объявлена в блоке 4. Но блок 4 не исполнялся. Значит переменная Tip не объявлена. Получается, что мы используе переменную прежде, чем ее объявим?

 
почему? компилятор выделил участок памяти под переменную есчё при первом проходе... и обращение к ней не вызовет ошибки...
 
Aleksander:
почему? компилятор выделил участок памяти под переменную есчё при первом проходе... и обращение к ней не вызовет ошибки...


Не ясен следующий момент: при первом проходе (при условии, что у нас все 3 ордера - рыночные), мы же не попадаем в блок 4, т.к. в блоке 3 выполняется условие if(OrderType()<2). Тогда следующий за ним опреатор continue заканчивает текущую итерацию и ПРОПУСКАЕТ блок 4, в к-м и объявлена переменная Tip. Значит переменная Tip не была объявлена при 1-м проходе (т.е. строка с объявлением переменной Tip не была исполнена)... И так все 3 итерации. Т.е. после 3-й итерации мы попадаем в блок 5, где используется переменная Tip, к-я получается не была объявлена ранее (т.е. строка-то с ее объявлением есть, но т.к. мы не попали ни разу в блок 4, то значит мы и не объявили эту переменную?)?

 

я имел в виду проход компилятора по тексту программки - обнаружив в любой точке функции определение переменной - метакомпилятор объявил эту переменную для использования ниже по тексту - не взирая на то, что фактически обращения к инициализации(обьявления) переменной не было... - такова среда :-)

int start()  {
       int l=1;
       
       if (l == 2) {
          int kk=99;
          kk = 100;
       }
   }
   if (kk != 10) { Print("net kk takoi peremennoi = ", kk); }


хоть и не было входа в условие - компилятор встретив инт - выделил ячейку памяти для переменной... хоть и не инициализировал её... в Принте она будет = 0

 
Aleksander:

я имел в виду проход компилятора по тексту программки - обнаружив в любой точке функции определение переменной - метакомпилятор объявил эту переменную для использования ниже по тексту - не взирая на то, что фактически обращения к инициализации(обьявления) переменной не было... - такова среда :-)


хоть и не было входа в условие - компилятор встретив инт - выделил ячейку памяти для переменной... хоть и не инициализировал её... в Принте она будет = 0



Т.е. правильно ли я понял: компилятор, в отличие от терминала (грубо говоря) не выполняет циклы, а просто читает строки подряд и проверяет нет ли там ошибок... т.е. для него главное (что и является критерием наличия/отсутствия ошибки), чтобы строка (позиция), где была использована переменная шла ПОСЛЕ строки (позиции), где эта переменная была объявлена?
 
можно и так сказать :-) если ты обьявление сделаешь ниже - а обратишься к переменной выше по тексту - то компилятор сгенерирует ошибку...
 
Aleksander:
можно и так сказать :-) если ты обьявление сделаешь ниже - а обратишься к переменной выше по тексту - то компилятор сгенерирует ошибку...

С этим понятно, большое спасибо... По GV-переменным можешь подсказать?
 

а с ними что? - глобальные на уровне Терминала?

хранят некоторое время в файле переменных :-) дату обращения, имя и значение типа double
 
PS - а также - косвенно :-) - можно в имени переменной хранить до 63 любых букв - хоть русских хоть англ...
Причина обращения: