Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36936
Benutzer: 6.081
Aktive Benutzer: 495
Links: 80
Wir begrüßen unseren neuesten Benutzer: DarthTrader
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Stunden
- DarthTrade...
vor 6 Stunden
- Eren
vor 14 Stunden
- Rene1504
vor 15 Stunden
- ibdafx
vor einem Tag
- Batangenyo

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 63
Gesamt: 63
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Werbung

Like Tree3Likes
  • 1 Post By traderdoc
  • 1 Post By traderdoc
  • 1 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 15.08.15
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 220
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard 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
  #2 (permalink)  
Alt 15.08.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 15.08.15
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 220
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
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 anzeigen
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
  #4 (permalink)  
Alt 15.08.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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

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

traderdoc
Ca$hDigger likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 16.08.15
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 220
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
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
  #6 (permalink)  
Alt 16.08.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 16.08.15
Mitglied
 
Registriert seit: Jun 2013
Beiträge: 220
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

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 anzeigen
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
Thema geschlossen

Lesezeichen

Stichworte
array, array definieren, metatrader array, mql4, programmierung, programmierung metatrader


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------