Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 880

 
Господа программисты, сейчас что, всему так учат, что примеры в учебнике компилируются с сообщением об ошибке? Нафиг тогда такой пример? Как я смогу написать код правильно, если примеры, на которые я ориентируюсь, НЕ правильны?
 
rapid_minus:
Господа программисты, сейчас что, всему так учат, что примеры в учебнике компилируются с сообщением об ошибке? Нафиг тогда такой пример? Как я смогу написать код правильно, если примеры, на которые я ориентируюсь, НЕ правильны?
Есть ещё примеры в кодобазе, те вроде компилятся без ошибок.
 
rapid_minus:


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

И пусть это в действительности не глобальные переменные, но будут ли они, заданные в таком виде, передавать свои значения в оператор if-else, на котором собственно и построен весь мой код? И если по окончании работы функции результаты исчезают, а без функции компилятор выдает ошибку, так что, выделить глобальные переменные в отдельный файл нельзя?

А насчет стёба - пусть ребятки повеселятся: надоедает ведь постоянно глупости новичков читать, верно? 

Никто не говорил, что функцию надо убрать, надо из неё объявление переменных вынести за пределы функции, в начало кода. Или вообще их объявлять в главном файле.
 
evillive:
Никто не говорил, что функцию надо убрать, надо из неё объявление переменных вынести за пределы функции, в начало кода. Или вообще их объявлять в главном файле.

Выше Вы сказали, что по окончании работы функции результаты исчезают. Но убрать присвоение значений переменным из тела функции я не могу - компилятор ругается ошибками. Получается, что в функции я присвоил значения переменным, а при включении файла с ними, эти значения не читаются и компилятор опять будет ругаться? Т.е. нельзя записать код включаемого файла только из одних глобальных переменных?
 
rapid_minus:

Выше Вы сказали, что по окончании работы функции результаты исчезают. Но убрать присвоение значений переменным из тела функции я не могу - компилятор ругается ошибками. Получается, что в функции я присвоил значения переменным, а при включении файла с ними, эти значения не читаются и компилятор опять будет ругаться? Т.е. нельзя записать код включаемого файла только из одних глобальных переменных?

Я вот что хотел сказать:

//|Включаемый файл "Глобальные переменные"                           |
//+------------------------------------------------------------------+
//-----Объявляем Глобальные переменные:------------------------------------------

double High_0, High_1, High_2;             // Значение верхней линии Bollinger на 0, 1 и 2 барах
   double Low_0, Low_1, Low_2;                // Значение нижней линии Bollinger на 0, 1 и 2 барах
   double Delta_0, Delta_1;                   // Разница межу значениями верхней и нижней ...
                                              // ...линий Bollinger на 0 и 1 барах

void Variables()
{

High_0=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_UPPER,0);
     High_1=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_UPPER,1);
     High_2=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_UPPER,2);
     Low_0=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_LOWER,0);
     Low_1=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_LOWER,1);
     Low_2=iBands(NULL,0,10,2,0,PRICE_CLOSE,MODE_LOWER,2);
     Delta_0=(High_0-Low_0);
     Delta_1=(High_1-Low_1);
}
//------------------------------------------------------------------------------------------
 
evillive:

Я вот что хотел сказать:

:) 

"... SOS! Вот фрагмент включаемого файла глобальных переменных. Остальная часть абсолютно в том же духе.

И что я только ни делал: менял параметры, убирал переменные из файла по отдельности и группами, что бы найти, где ошибка - все едино:

пишет предупреждение "not all control paths return a value". Но ведь вроде все значения извлекаются правильно. В чем же тогда причина?  ..." 

Строго по спирали вернулись к первому посту соискателя.  

 
tara:

:) 

"... SOS! Вот фрагмент включаемого файла глобальных переменных. Остальная часть абсолютно в том же духе.

И что я только ни делал: менял параметры, убирал переменные из файла по отдельности и группами, что бы найти, где ошибка - все едино:

пишет предупреждение "not all control paths return a value". Но ведь вроде все значения извлекаются правильно. В чем же тогда причина?  ..." 

Строго по спирали вернулись к первому посту соискателя.  

А если присмотреться? Есть один маааленький нюанс, который я всё никак не могу донести до его сознания...

P.S.: int на void исправил.

 
evillive:

А если присмотреться? Есть один маааленький нюанс, который я всё никак не могу донести до его сознания...

P.S.: int на void исправил.


Да я-то исправил, но Вы, насколько я понял последний Ваш пост, опять вернули int ?

ЗЫ: увидел исправление, но теперь ничего не понял... Ну оставили Вы присвоение значений в функции, но они исчезли (см. выше)?

 
evillive:

А если присмотреться? Есть один маааленький нюанс, который я всё никак не могу донести до его сознания...

P.S.: int на void исправил.

Учебник Ковалева ему перечитать надо, хотя-бы в части структуры программы и области видимости данных. 

И никаких инклудников и прочего магнетизма.  

 
Всем спасибо! Лет 10 так не ржал :)