Примеры: Язык MQL4 для "чайников". Сложные вопросы простым языком - страница 2

 
новая статья опубликована, приятного чтения)):
http://articles.mql4.com/ru/articles/1496
 
banderass:
новая статья опубликована, приятного чтения)):
http://articles.mql4.com/ru/articles/1496


Подскажите, плз, где ошибка.
В качестве упражнения хочу перебрать массив наоборот, не получается.
По грамматике вроде всё правильно, но не работает. Где собака порылась? :

int array2D[3][3]={10,20,30,
                            40,50,60,
                            70,80,90};
int y=3;
int x=3;
while(y>0)
                   {
                       while(x>0)
                          {
                                MessageBox("array2D["+y+"]["+x+"]="+array2D[y][x]);
                                x--;
                          }
                      y--;
                                   }
 
int array2D[3][3]={10,20,30,
                   40,50,60,
                   70,80,90};
int y=2; // правильные индексы
int x=2;
while(y>=0) // правильное условие
{
   x=2; // инициализация 
   while(x>=0)
   {
      MessageBox("array2D["+y+"]["+x+"]="+array2D[y][x]);
      x--;
   }
   y--;
}
Вы забыли про инициализацию и немного напутали с индексами. Учитывайте, что в массиве последний элемент - это 2, а не 3, потому что индексы считаются с нуля. Но нуль тоже нужно учитывать, поэтому используем другое условие. Например, больше или равно (=>), что я и сделал.
В этом случае удобнее использовать цикл for:

for(int y=2;y>=0;y--)
   for(int x=2;x>=0;x--)
     MessageBox("array2D["+y+"]["+x+"]="+array2D[y][x]);
 
banderass:
новая статья опубликована, приятного чтения)):
http://articles.mql4.com/ru/articles/1496

А когда же будет следующая (четвёртая) статья?
(в третьей не получается добавить коментарий).
Автору респект.
 
Pingvin-man писал(а):
banderass:
новая статья опубликована, приятного чтения)):
http://articles.mql4.com/ru/articles/1496

А когда же будет следующая (четвёртая) статья?
(в третьей не получается добавить коментарий).
Автору респект.


Ой, не могу сказать точно, пару недель, сейчас потихоньку пишу ее ...
 

Статья очень полезная! Спасибо автору.

Однако есть пожелание более подробно описать работу с массивами. В частности обязательно ли задавить длину массива при объявлении? Особенности работы с предопределенными массивами-таймсесиями , массивами типа indicator_buffers и массивами объявляемыми внутри индикатора. Хотелось бы так же увидеть примеры применения ArrayGetAsSeries.

Думаю это будет полезно многим.

 
PalMen:

Статья очень полезная! Спасибо автору.


Однако есть пожелание более подробно описать работу с массивами.
В частности обязательно ли задавить длину массива при объявлении?
Особенности работы с предопределенными массивами-таймсесиями
, массивами типа indicator_buffers и массивами объявляемыми внутри индикатора.
Хотелось бы так же увидеть примеры применения ArrayGetAsSeries.


Думаю это будет полезно многим.

Длину массива задавать не обязательно, если вы явно инициализируете его, например, так:
int array[]={1,2,3,4,5}; 
// длина будет определена автоматически
Массивы типа indicator_buffers были рассмотрены в статье Язык MQL4 для "чайников". Пользовательские индикаторы (часть 1)
Остальные вопросы по возможности будут рассмотрены в следующих статьях.
 

видимо опечатка


   № Индексов  0    1    2   3  4
int array[] = {10, 100, 190, 3, 1};
 // будет возвращён индекс  2, так как ему соответствует максимальное значение 190
ArrayMaximum(array); 
 

Научу Вас программировать советников на MQL4.

 

Репетитор по программированию на MQL4 для MetaTrader 4

Научу программировать собственные советники, индикаторы, скрипты.

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

Будем работать до результата. Получите большой практический опыт.

Вместе напишем советника по вашему алгоритму.

Форму обучения выстраиваем индивидуально.

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

Занятия провожу лично, имею большой опыт программирования и трейдинга. Так же есть сертификат программиста MQL 4.

Звоните или пишите прямо сейчас, пообщаемся, отвечу на все вопросы.

Скайп: kresh91

Почта: mql.coach@gmail.com

Причина обращения: