Скачать MetaTrader 5

Обсуждение статьи "Основы программирования на MQL5 - Массивы"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел прибыльную стратегию? Заведи торговый сигнал и заработай на этом!
MetaQuotes Software Corp.
Модератор
181049
MetaQuotes Software Corp. 2012.11.03 16:41 

Опубликована статья Основы программирования на MQL5 - Массивы:

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

Многомерный массив

Может быть, сложности применения массивов каким-то образом связаны с использованием символов "[" и "]"? Эти символы редко когда используются, кроме как в программировании при работе с массивами, поэтому их расположение на клавиатуре может забываться и вызывать неудобства. На самом деле, их расположение на клавиатуре очень легко запомнить - эти две клавиши рядом с клавишей "Enter" расположены в логическом порядке: открывающая скобка и закрывающая скобка.

Автор: Дмитрий

IgorM М
4801
IgorM М 2012.11.03 17:20  

в целом не плохая статья - лучше, чем в учебниках по программированию, не так сухо и довольно доходчиво

не понравился пример: "Многомерный массив с применением ООП" , простая реализация, но довольно "корявая" последующая работа с таким динамическим массивом, по мне так лучше не было бы этого примера, чем такая отпугивающая конструкция, имхо 

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
GKS
1645
GKS 2012.11.03 19:34  
Статья действительно не плохая в особенности для начинающих .
Andrey Voytenko
23088
Andrey Voytenko 2012.11.03 20:12  

Неплохо написано, но в статье ни слова про CArray и его потомков.

Начинающие могут подумать, что для работы с массивами в стиле ООП нужно свои классы писать, а они уже давно написаны.

Vladimir Kustikov
1587
Vladimir Kustikov 2012.11.03 20:13  

Ну вот, начало учебнику по программированию на MQL5 практически положено

Единственное, реализация массива на ООП выглядит очень уж натянуто

Yury Reshetov
13459
Yury Reshetov 2012.11.03 20:16  
avoitenko:

Неплохо написано, но в статье ни слова про CArray и его потомков.

Начинающие могут подумать, что для работы с массивами в стиле ООП нужно свои классы писать, а они уже давно написаны.

Кста, это тема автору для продолжения цикла статей.
Комбинатор
15918
Комбинатор 2012.11.03 20:26  
avoitenko:

Неплохо написано, но в статье ни слова про CArray и его потомков.

CArray и всех его потомков предать анафеме.

Такое надо писать на шаблонах.

Vladix:

Единственное, реализация массива на ООП выглядит очень уж натянуто

Есть немного :)


Dmitry Fedoseev
42876
Dmitry Fedoseev 2012.11.04 05:25  

Есть какие предложения, как можно лучше сделать этот массив на ООП?

Пытался получить что-то типа как на JavaScript:

var ar=new Array();
ar[0]=new Array();
ar[1]=new Array();
ar[2]=new Array();

ar[0][0]=1;
ar[0][1]=2;

alert(ar[0][1]);

Самый большой затык в том, что в JavaScript в массив можно сразу список загнать:

ar[0][2]=Array(131,132,133,134);
alert(ar[0][2][3]);

А здесь никак такое не выдумать. Поэтому, как ни крути... хорошего варианта не будет. 

 

 

IgorM М
4801
IgorM М 2012.11.04 05:50  
Integer:Есть какие предложения, как можно лучше сделать этот массив на ООП?

мне понравились реализации динамических массивов от Yurich https://www.mql5.com/ru/forum/6729/page3 , по производительности не знаю насколько эффективны, но по читаемости кода - супер


Serhiy Dotsenko
919
Serhiy Dotsenko 2015.02.05 13:49  
как вернуть массив из функции? нашёл пока обходной путь, но явно ж должен быть способ как это сделать "в лоб" ))
Dennis Kirichenko
11317
Dennis Kirichenko 2015.02.05 14:57  
thejobber:
как вернуть массив из функции? нашёл пока обходной путь, но явно ж должен быть способ как это сделать "в лоб" ))

В лоб - никак... разве, что указатель на массив. Например:

CArrayDouble *Function(void);

Не в лоб, но вполне стандартный подход, как-то так, в таком разрезе:

void Function(double &_arr_out[]);
В общем, возвращаемый массив - это параметр-ссылка...
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий