Insgesamt kein schlechter Artikel - besser als in Programmierlehrbüchern, nicht so trocken und recht übersichtlich
Das Beispiel hat mir nicht gefallen:"Mehrdimensionales Array mit OOP". Es ist eine einfache Implementierung, aber die anschließende Arbeit mit einem solchen dynamischen Array ist ziemlich "knifflig", für mich wäre es besser, dieses Beispiel nicht zu haben, als eine so gruselige Konstruktion, imho.
- www.mql5.com
Nun, der Anfang des MQL5-Programmiertutorials ist fast fertig
Das Einzige ist, dass die Array-Implementierung auf OOP sehr angestrengt aussieht
Er ist nicht schlecht geschrieben, aber der Artikel verliert kein Wort über CArray und seine Abkömmlinge.
Anfänger denken vielleicht, dass man für die Arbeit mit Arrays im OOP-Stil eigene Klassen schreiben muss, aber die sind schon lange geschrieben worden.
Er ist nicht schlecht geschrieben, aber der Artikel sagt kein Wort über CArray und seine Nachkommen.
CArray und alle seine Abkömmlinge sollten verteufelt werden.
Solche Dinge sollten auf Vorlagen geschrieben werden.
Die einzige Sache ist, dass Array-Implementierung auf OOP sehr angestrengt aussieht
Es ist ein bisschen :)
Irgendwelche Vorschläge, wie dieses Array besser in OOP umgesetzt werden kann?
Ich versuche, etwas wie in JavaScript zu bekommen:
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]);
Der größte Knackpunkt ist, dass man in JavaScript eine Liste auf einmal in ein Array einfügen kann:
ar[0][2]=Array(131,132,133,134);
alert(ar[0][2][3]);
Und es gibt keine Möglichkeit, so etwas hier zu finden. Deshalb, egal wie man es betrachtet. es wird keine gute Variante geben.
Ich mag Yurichs Implementierung von dynamischen Arrays https://www.mql5.com/ru/forum/6729/page3, ich weiß nicht, wie effizient es in Bezug auf die Leistung ist, aber in Bezug auf die Lesbarkeit des Codes ist es super.
Sehr guter Artikel, für absolute Anfänger, aber auch für erfahrene Programmierer, die neu im MT5 sind. Nur der letzte Abschnitt "Erstellen von mehrdimensionalen Arrays mit OOP" ist von geringem Interesse.
Allerdings ein kleiner Fehler:
Array indexing order can be determined using the ArrayIsSeries() function:
bool series=ArrayIsSeries(ar);
Wenn das Array in umgekehrter Reihenfolge indiziert ist, wird die Funktion true zurückgeben.
Dies ist falsch. Die Funktion, mit der man die Indizierungsreihenfolge eines Arrays ermitteln kann, ist ArrayGetAsSeries().
ArrayIsSeries() wird verwendet, um festzustellen, ob ein Array eine Zeitreihe ist.
There is only one method that allows you to do a search in an unsorted array
Dies ist nicht unbedingt richtig, siehe Hash-basierter Suchalgorithmus. Aber dieser Algorithmus ist wahrscheinlich nicht für den Handel geeignet.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Grundlagen der Programmierung in MQL5: Arrays :
Arrays sind zusammen mit Variablen und Funktionen ein wesentlicher Bestandteil so gut wie jeder Programmiersprache. Dieser Beitrag dürfte vor allem für Neueinsteiger in der Programmierung mit MQL5 interessant sein, bietet erfahrenen Programmierern aber gleichzeitig eine gute Gelegenheit, ihr Wissen zusammenzufassen und zu systematisieren.
Ein Array ist also ein durchnummerierter Satz von Variablen mit dem gleichen Namen. Zu den allgemeinen Eigenschaften von Arrays gehören der Name des Arrays, der Variablentyp (int, double usw.) und die Array-Größe. Elemente von Arrays werden ab Null indexiert. Da wir gerade von Array-Elementen sprechen: Es ist immer besser, das Wort "Index" anstatt "Nummer" zu benutzen, um darauf hinzudeuten, dass wir die Zählung von Array-Elementen bei Null beginnen (während eine Nummerierung für gewöhnlich bei Eins beginnt). Bei dieser Art der Indexierung der Elemente ist der Index des letzten Elements eins weniger als die Menge der Array-Elemente.
Wenn das Array folgendermaßen deklariert ist:
hat es die folgenden Elemente: Variable[0], Variable[1] und Variable[2].
Autor: Dmitry Fedoseev