[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 370

 

Bonjour !

Pouvez-vous me donner un indice, s'il vous plaît.....

Indic_mas[]//main array

Indic_mas_copi[]//tableau vers lequel le tableau principal est copié.

n //nombre d'éléments dans Indic_mas_copi[]

1. L'entrée Indic_mas_copi[n]=0 signifie-t-elle que nous avons mis à zéro tous les éléments du tableau?

2. Après avoir effectué certaines opérations, le tableau Indic_mas_copi[] a changé les valeurs de certains éléments,

L'itération suivante répète la copie de Indic_mas[] dans Indic_mas_copi[].

Est-ce que Indic_mas_copi[] doit être mis à zéro (ou vide) avant cette copie ?

ou les éléments de Indic_mas[] remplaceront-ils automatiquement les éléments précédents de Indic_mas_copi[] ?

 
LOA:

Bonjour !

Pouvez-vous me donner un indice, s'il vous plaît.....

Indic_mas[]//main array

Indic_mas_copi[]//tableau vers lequel le tableau principal est copié.

n //nombre d'éléments dans Indic_mas_copi[]

1. L'entrée Indic_mas_copi[n]=0 signifie-t-elle que nous avons mis à zéro tous les éléments du tableau ?

2. Après avoir effectué certaines opérations, le tableau Indic_mas_copi[] a changé les valeurs de certains éléments,

L'itération suivante répète la copie de Indic_mas[] dans Indic_mas_copi[].

Est-ce que Indic_mas_copi[] doit être mis à zéro (ou vide) avant cette copie ?

ou les éléments Indic_mas[] remplaceront-ils automatiquement les éléments Indic_mas_copi[] précédents ?


1. Si n est le nombre d'éléments dans Indic_mas_copi[], alors écrire Indic_mas_copi[n] n'est pas correct car vous sortez du tableau dans cette entrée. N'oubliez pas que la numérotation des cellules du tableau commence à partir de zéro. Par conséquent, le numéro de la dernière cellule du tableau que vous pouvez adresser est n-1.

2. seront remplacés. Vérifiez cela avec le script.

 
drknn:


1. Si n est le nombre d'éléments dans Indic_mas_copi[], alors écrire Indic_mas_copi[n] n'est pas correct car vous sortez du tableau dans cette entrée. N'oubliez pas que la numérotation des cellules du tableau commence à partir de zéro. C'est pourquoi le numéro de la dernière cellule du tableau à être adressée est n-1.

2. il y aura des remplacements. Vérifiez-le avec le script.


Merci beaucoup, Vladimir !

Pour mettre à zéro les éléments du tableau, vous avez besoin des éléments suivants ?

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


Merci beaucoup, Vladimir !

Pour mettre à zéro les éléments du tableau, vous avez besoin des éléments suivants ?


Non, c'est trop compliqué. Il existe un moyen plus simple.

int ArrayInitialize( double &array[], double valeur)
Définit tous les éléments d'un tableau numérique à la même valeur. Renvoie le nombre d'éléments initialisés.

Spécifiez le nom du tableau entre parenthèses et mettez zéro comme deuxième paramètre. Cela aura pour effet de mettre à zéro tous les éléments du tableau.

 
LOA:


Merci beaucoup, Vladimir !

Pour mettre à zéro les éléments du tableau, vous avez besoin des éléments suivants ?

ArrayInitialize(Array_Name,0) ;
 
О... Vladimir m'a devancé... :)
 
artmedia70:
ArrayInitialize(Array_Name,0) ;

C'est mieux : https://docs.mql4.com/ru/array/ArrayInitialize - il y a un exemple concret de code.
 
drknn:


Non - c'est trop compliqué. Il existe un moyen plus simple.

int ArrayInitialize( double &array[], double valeur)
Définit tous les éléments d'un tableau numérique à la même valeur. Renvoie le nombre d'éléments initialisés.

Spécifiez le nom du tableau entre parenthèses, et mettez zéro comme second paramètre. Par conséquent, tous les éléments du tableau seront mis à zéro.


Merci. C'est vraiment plus facile comme ça.

La boucle peut alors être utilisée dans une situation où nous devons remettre à zéro certains des éléments ?

Ou, disons, à travers un seul élément.

 
LOA:

Bonjour !

Pouvez-vous me donner un indice, s'il vous plaît.....

Indic_mas[]//main array

Indic_mas_copi[]//tableau vers lequel le tableau principal est copié.

n //nombre d'éléments dans Indic_mas_copi[]

1. L'entrée Indic_mas_copi[n]=0 signifie-t-elle que nous avons mis à zéro tous les éléments du tableau ?

2. Après avoir effectué certaines opérations, le tableau Indic_mas_copi[] a changé les valeurs de certains éléments,

L'itération suivante répète la copie de Indic_mas[] dans Indic_mas_copi[].

Est-ce que Indic_mas_copi[] doit être mis à zéro (ou vide) avant cette copie ?

ou les éléments de Indic_mas[] remplaceront-ils automatiquement les éléments précédents de Indic_mas_copi[] ?

Non, tu n'es pas obligé. Tous les éléments de Indic_mas_copi[] seront remplacés par ceux copiés depuis le tableau principal Indic_mas[].
 
LOA:


Merci. C'est vraiment plus simple comme ça.

La boucle peut alors être utilisée dans une situation où il faut remettre à zéro certains des éléments ?

Ou, disons, à travers un élément.


Une boucle peut être utilisée lorsque vous souhaitez mettre à zéro ou réinitialiser certains éléments... Une boucle, par contre, les parcourt tous un par un. Par conséquent, à l'intérieur de la boucle, nous pouvons introduire une règle qui triera les cellules requises du tableau. Par exemple, nous devons seulement trier les nombres négatifs et les doubler. Nous allons donc écrire ce qui suit dans la boucle

Si la valeur de la cellule actuelle du tableau est inférieure à zéro, elle prend la valeur de cette cellule du tableau multipliée par deux. Sinon, continuez

P.S.

if(massiv[i]<0){
  massiv[i]=massiv[i]*2;
}
else{
  continue;
}
Bien que du point de vue du processeur, si nous savons à l'avance exactement ce que nous devons doubler, il est préférable d'appliquer l'addition plutôt que la multiplication - l'addition prendra moins de temps au processeur.