[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 370

 

Guten Tag!

Können Sie mir einen Tipp geben, bitte.....

Indic_mas[]//Hauptfeld

Indic_mas_copi[]//Array, in das das Hauptarray kopiert wird.

n //Anzahl der Elemente in Indic_mas_copi[]

1. Bedeutet der Eintrag Indic_mas_copi[n]=0, dass wir alle Elemente des Arrays auf Null gesetzt haben?

2. Nach der Durchführung bestimmter Operationen hat das Array Indic_mas_copi[] die Werte einiger Elemente geändert,

In der nächsten Iteration wird das Kopieren von Indic_mas[] in Indic_mas_copi[] wiederholt.

Muss Indic_mas_copi[] vor dem Kopieren auf Null (oder leer) gesetzt werden?

oder werden die Elemente von Indic_mas[] automatisch die vorherigen Elemente von Indic_mas_copi[] ersetzen?

 
LOA:

Guten Tag!

Können Sie mir einen Tipp geben, bitte.....

Indic_mas[]//Hauptfeld

Indic_mas_copi[]//Array, in das das Hauptarray kopiert wird.

n //Anzahl der Elemente in Indic_mas_copi[]

1. Bedeutet der Eintrag Indic_mas_copi[n]=0, dass wir alle Elemente des Arrays auf Null gesetzt haben?

2. Nach der Durchführung bestimmter Operationen hat das Array Indic_mas_copi[] die Werte einiger Elemente geändert,

In der nächsten Iteration wird das Kopieren von Indic_mas[] in Indic_mas_copi[] wiederholt.

Muss Indic_mas_copi[] vor dem Kopieren auf Null (oder leer) gesetzt werden?

oder werden Indic_mas[]-Elemente automatisch die früheren Indic_mas_copi[]-Elemente ersetzen?


1. Wenn n die Anzahl der Elemente in Indic_mas_copi[] ist, dann ist es nicht korrekt, Indic_mas_copi[n] zu schreiben, da Sie in diesem Eintrag das Array verlassen. Vergessen Sie nicht, dass die Nummerierung der Array-Zellen bei null Zellen beginnt. Daher ist die Nummer der letzten Zelle des Arrays, die Sie ansprechen können, n-1

2. sie werden ersetzt. Überprüfen Sie dies mit dem Skript.

 
drknn:


1. Wenn n die Anzahl der Elemente in Indic_mas_copi[] ist, dann ist es nicht korrekt, Indic_mas_copi[n] zu schreiben, da Sie in diesem Eintrag das Array verlassen. Vergessen Sie nicht, dass die Nummerierung der Array-Zellen bei null Zellen beginnt. Deshalb ist die Nummer der letzten zu adressierenden Array-Zelle n-1.

2. Es wird Auswechslungen geben. Überprüfen Sie dies mit dem Skript.


Herzlichen Dank, Vladimir!

Um die Elemente des Arrays auf Null zu setzen, benötigen Sie dann Folgendes?

double i;
for (i=n-1;i>=0;i--)Indic_mas_copi[i]=0; 
 
LOA:


Herzlichen Dank, Vladimir!

Um die Elemente des Arrays auf Null zu setzen, benötigen Sie dann Folgendes?


Nein - das ist zu kompliziert. Es gibt einen einfacheren Weg.

int ArrayInitialize( double &array[], double value)
Setzt alle Elemente eines numerischen Arrays auf denselben Wert. Gibt die Anzahl der initialisierten Elemente zurück.

Geben Sie den Namen des Arrays in Klammern an und setzen Sie Null als zweiten Parameter. Dies führt dazu, dass alle Elemente des Arrays auf Null gesetzt werden.

 
LOA:


Herzlichen Dank, Vladimir!

Um die Elemente des Arrays auf Null zu setzen, benötigen Sie dann Folgendes?

ArrayInitialize(Array_Name,0);
 
О... Vladimir ist mir zuvorgekommen... :)
 
artmedia70:
ArrayInitialize(Array_Name,0);

Das ist besser: https://docs.mql4.com/ru/array/ArrayInitialize - es gibt ein konkretes Codebeispiel
 
drknn:


Nein - das ist zu kompliziert. Es gibt einen einfacheren Weg.

int ArrayInitialize( double &array[], double value)
Setzt alle Elemente eines numerischen Arrays auf denselben Wert. Gibt die Anzahl der initialisierten Elemente zurück.

Geben Sie den Namen des Arrays in Klammern an und setzen Sie Null als zweiten Parameter. Infolgedessen werden alle Elemente des Arrays auf Null gesetzt.


Ich danke Ihnen. Auf diese Weise ist es wirklich einfacher.

Dann kann die Schleife in einer Situation verwendet werden, in der wir einige der Elemente auf Null setzen müssen?

Oder, sagen wir, durch ein einziges Element.

 
LOA:

Guten Tag!

Können Sie mir einen Tipp geben, bitte.....

Indic_mas[]//Hauptfeld

Indic_mas_copi[]//Array, in das das Hauptarray kopiert wird.

n //Anzahl der Elemente in Indic_mas_copi[]

1. Bedeutet der Eintrag Indic_mas_copi[n]=0, dass wir alle Elemente des Arrays auf Null gesetzt haben?

2. Nach der Durchführung bestimmter Operationen hat das Array Indic_mas_copi[] die Werte einiger Elemente geändert,

In der nächsten Iteration wird das Kopieren von Indic_mas[] in Indic_mas_copi[] wiederholt.

Muss Indic_mas_copi[] vor dem Kopieren auf Null (oder leer) gesetzt werden?

oder werden Indic_mas[]-Elemente automatisch die bisherigen Indic_mas_copi[]-Elemente ersetzen?

Nein, das müssen Sie nicht. Alle Elemente von Indic_mas_copi[] werden durch diejenigen ersetzt, die aus dem Hauptarray Indic_mas[] kopiert wurden
 
LOA:


Ich danke Ihnen. Auf diese Weise ist es wirklich einfacher.

Dann kann die Schleife in einer Situation verwendet werden, in der Sie einige der Elemente auf Null setzen müssen?

Oder, sagen wir, durch ein Element.


Eine Schleife kann verwendet werden, wenn Sie einige Elemente auf Null setzen oder reinitialisieren wollen... Eine Schleife hingegen geht sie alle nacheinander durch. Daher können wir innerhalb der Schleife eine Regel einführen, die die erforderlichen Zellen des Arrays sortiert. Zum Beispiel müssen wir nur negative Zahlen aussortieren und verdoppeln. Daher schreiben wir Folgendes in die Schleife

Wenn der Wert in der aktuellen Zelle des Arrays kleiner als Null ist, wird der Wert dieser Zelle des Arrays mit zwei multipliziert. Andernfalls, weiter

P.S.

if(massiv[i]<0){
  massiv[i]=massiv[i]*2;
}
else{
  continue;
}
Obwohl es aus der Sicht des Prozessors besser ist, die Addition als die Multiplikation anzuwenden, wenn wir im Voraus genau wissen, was wir verdoppeln müssen - die Addition benötigt weniger CPU-Zeit.