Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Array Frage (http://www.expert-advisor.com/forum/showthread.php?t=4413)

Ca$hDigger 15.08.15 16:42

Array Frage
 
Hallo,

ich bräuchte mal Support zu Arrays

- Basiert ein Array immer auf int also ganzzahligen Zahlen?
also wenn zB unterschiedliche Variablen mit Arrays um eine Dimension erweitert werden dann sind doch egal bei double int bool die Arrays immer als int definiert richtig?

- Wie kann ein Array im Laufe der Ausführung eines Programmes definiert werden? ich meine sowas mal unter dem Namen "dynamsiche Arrays" gesehen zu haben. ZB zu Bedingung A werden es [10] zu Bedingung B werden [100] Felder definiert. Wie sieht die nachträgliche Definierung konkret aus?

Grüße
C$D

traderdoc 15.08.15 17:06

Das Array wird immer mit dem Datentyp seiner Felder deklariert.

Mit ArrayResize kann man eindimensionale Arrays von der Dimension her dynamisch ändern. Bei mehrdimensionalen Arrays, zB. Arr[3][7] kann immer nur die linksstehende Dimension geändert werden.

traderdoc

Ca$hDigger 15.08.15 19:21

Zitat:

Zitat von traderdoc (Beitrag 30791)
Das Array wird immer mit dem Datentyp seiner Felder deklariert.

Hab die Frage nicht genau genug gestellt, ich meine die Felder selbst wenn zB

Code:

int a[10];
double b[10];

dann sind doch bei beiden 0-9 in Ganzzahlschritten(int) definiert richtig? Also nicht das bei double b[10] die Sache in 0.0xxxxxx Schritten definiert wird und es ein Vielfaches von 10 Feldern wird?

Zitat:

Zitat von traderdoc (Beitrag 30791)
Mit ArrayResize kann man eindimensionale Arrays von der Dimension her dynamisch ändern. Bei mehrdimensionalen Arrays, zB. Arr[3][7] kann immer nur die linksstehende Dimension geändert werden.

Sehr interessante Info mit dem linksstehend.
Nehmen wir an:
Code:

double b[];
jetzt ermittelt das Programm die Anzahl der benötigten Felder zB

Code:

int benoetigteFelder;
benoetigteFelder = 7;

Wie definiert man dann double b[] sodass der Wert der Variable benoetigteFelder die Anzahl der Felder bestimmt?

Gruß
C$D

traderdoc 15.08.15 20:37

Sorry, meinst Du den Arrayindex []?
Der muß immer eine natürliche Zahl sein.

ArrayResize(b, 7); //Index 0 - 6!

traderdoc

Ca$hDigger 16.08.15 14:46

Zitat:

Zitat von traderdoc (Beitrag 30795)
Sorry, meinst Du den Arrayindex []?
Der muß immer eine natürliche Zahl sein.

ArrayResize(b, 7); //Index 0 - 6!

traderdoc

Prima danke, dann mach ich es so:

eindimensional:
Code:

double b[];
int benoetigteFelder;
benoetigteFelder = 7;
ArrayResize(b, benoetigteFelder ); // Index 0 - Wert von benoetigteFelder

mehrdimensional:
Code:

double b[][10];
int benoetigteFelder;
benoetigteFelder = 7;
ArrayResize(b, benoetigteFelder); // Index 0 - Wert von benoetigteFelder

oder lieber so?
Code:

double b[][];
int benoetigteFelder;
benoetigteFelder = 7;
ArrayResize(b, benoetigteFelder,10); // Index 0 - Wert von benoetigteFelder

Gruß C$D

traderdoc 16.08.15 17:13

So!

mehrdimensional:
Code:

double b[][10];
int benoetigteFelder;
benoetigteFelder = 7;
ArrayResize(b, benoetigteFelder); // Index 0 - Wert von benoetigteFelder

Was bedeutet der Kommentar "Index 0 - Wert von benoetigte Felder?, v.a die 0?

traderdoc

Ca$hDigger 16.08.15 17:55

Ok das heisst alle Dimensionen ausser die Linke müssen zu Beginn definiert sein. Wieso ist es eigentlich nicht möglich die weiteren Dimensionen auch dynamsich zu bestimmen? Liegt das speziell an mql oder ist das in anderen Programmiersprachen auch so?

Zitat:

Zitat von traderdoc (Beitrag 30808)
So!
Was bedeutet der Kommentar "Index 0 - Wert von benoetigte Felder?, v.a die 0?
traderdoc

Wollte statt 0 bis 6 die 6 durch die Variable "benoetigteFelder" ausdrücken aber war sowieso falsch denn in echt sind es im Index "benoetigteFelder - 1"

Index = 0 bis (benoetigteFelder - 1) ;)
entspricht
Index = 0 bis 6 :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum