Discusión sobre el artículo "Fundamentos de programación en MQL5 - Arrays"

 

Artículo publicado Fundamentos de programación en MQL5 - Arrays:

Junto con las variables y las funciones, los arrays forman prácticamente una parte integrante de cualquier lenguaje de programación. Este artículo puede ser interesante en primer lugar para los principiantes que se han puesto a estudiar la programación en MQL5. Mientras que los programadores experimentados tienen una buena oportunidad de generalizar y sistematizar sus conocimientos.

Matriz multidimensional

Autor: Dmitry Fedoseev

 

En general no es un mal artículo - mejor que en los libros de texto de programación, no tan seco y bastante lúcido

No me gustó el ejemplo:"Matriz multidimensional usando programación orientada a objetos". Es una implementación simple, pero el trabajo posterior con una matriz dinámica es bastante "complicado", para mí sería mejor no tener este ejemplo que una construcción tan aterradora, en mi opinión.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
El artículo no está nada mal sobre todo para principiantes .
 

No está mal escrito, pero el artículo no dice ni una palabra sobre CArray y sus descendientes.

Los principiantes pueden pensar que para trabajar con arrays al estilo de la programación orientada a objetos es necesario escribir sus propias clases, pero ya están escritas desde hace mucho tiempo.

 

Bueno, el principio del tutorial de programación MQL5 está casi terminado

Lo único es que la implementación del array en OOP se ve muy forzada

 
avoitenko:

No está mal escrito, pero el artículo no dice ni una palabra sobre CArray y sus descendientes.

Los principiantes pueden pensar que para trabajar con arrays en el estilo OOP es necesario escribir sus propias clases, pero han sido escritas hace mucho tiempo.

Por cierto, este es un tema para que el autor continúe la serie de artículos.
 
avoitenko:

No está mal escrito, pero el artículo no dice ni una palabra sobre CArray y sus descendientes.

CArray y todos sus descendientes deberían ser anatematizados.

Estas cosas deberían escribirse en plantillas.

Vladix:

Lo único es que la implementación de array en OOP parece muy forzada

Lo es un poco :)

 

¿Alguna sugerencia sobre cómo esta matriz se puede hacer mejor en OOP?

Intento conseguir algo como en 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]);

La mayor pega es que en JavaScript se puede meter una lista en un array de una sola vez:

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

Y aquí no hay forma de hacer tal cosa. Por lo tanto, no importa cómo se mire. no habrá una buena variante.

 
Integer:¿Alguna sugerencia sobre cómo hacer este array mejor en OOP?

Me gusta la implementación de Yurich de arrays dinámicos https://www.mql5.com/ru/forum/6729/page3, no sé lo eficiente que es en términos de rendimiento, pero en términos de legibilidad del código es super.

 

Muy buen artículo, para el principiante absoluto, pero también para el programador experimentado nuevo a MT5. Sólo la última sección "Creación de matrices multidimensionales utilizando OOP" es de menor interés.

Altough, un pequeño error :

Array indexing order can be determined using the ArrayIsSeries() function:

bool series=ArrayIsSeries(ar);

Si la matriz está indexada en orden inverso, la función devolverá true.

Esto es falso. La función a usar para conocer el orden de indexación de un array es ArrayGetAsSeries().

ArrayIsSeries() se utiliza para determinar si un array es una TimeSeries.

 

There is only one method that allows you to do a search in an unsorted array

Esto no es estrictamente cierto, eche un vistazo a Hash Based Searching Algorithm. Pero este algoritmo probablemente no es aplicable al comercio.