[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 370

 

¡Buenas tardes!

¿Puedes darme una pista, por favor? .....

Indic_mas[]//array principal

Indic_mas_copi[]//matriz a la que se copia la matriz principal.

n //número de elementos en Indic_mas_copi[]

1. ¿La entrada Indic_mas_copi[n]=0 significa que hemos puesto a cero todos los elementos de la matriz?

2. Después de realizar ciertas operaciones, el array Indic_mas_copi[] ha cambiado los valores de algunos elementos,

La siguiente iteración repite la copia de Indic_mas[] en Indic_mas_copi[].

¿Es necesario que Indic_mas_copi[] se ponga a cero (o esté vacío) antes de esta copia?

¿o los elementos de Indic_mas[] sustituirán automáticamente a los elementos anteriores de Indic_mas_copi[] ?

 
LOA:

¡Buenas tardes!

¿Puedes darme una pista, por favor? .....

Indic_mas[]//array principal

Indic_mas_copi[]//matriz a la que se copia la matriz principal.

n //número de elementos en Indic_mas_copi[]

1. ¿La entrada Indic_mas_copi[n]=0 significa que hemos puesto a cero todos los elementos de la matriz?

2. Después de realizar ciertas operaciones, el array Indic_mas_copi[] ha cambiado los valores de algunos elementos,

La siguiente iteración repite la copia de Indic_mas[] en Indic_mas_copi[].

¿Es necesario que Indic_mas_copi[] se ponga a cero (o esté vacío) antes de esta copia?

¿o los elementos Indic_mas[] sustituirán automáticamente a los elementos Indic_mas_copi[] anteriores?


1. Si n es el número de elementos en Indic_mas_copi[], entonces escribir Indic_mas_copi[n] no es correcto porque se sale del array en esta entrada. No olvide que la numeración de las celdas de la matriz comienza desde las celdas cero. Por lo tanto, el número de la última celda de la matriz a la que se puede dirigir es n-1

2. será sustituido. Comprueba esto con el guión.

 
drknn:


1. Si n es el número de elementos en Indic_mas_copi[], entonces escribir Indic_mas_copi[n] no es correcto porque se sale del array en esta entrada. No olvide que la numeración de las celdas de la matriz comienza desde las celdas cero. Por eso, el número de la última celda del array a tratar es n-1.

2. Habrá sustituciones. Compruébalo con el guión.


¡Muchas gracias, Vladimir!

Entonces para poner a cero los elementos del array se necesita lo siguiente?

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


¡Muchas gracias, Vladimir!

Entonces para poner a cero los elementos del array se necesita lo siguiente?


No, es demasiado complicado. Hay una forma más sencilla.

int ArrayInitialize( double &array[], double value)
Establece todos los elementos de una matriz numérica con el mismo valor. Devuelve el número de elementos inicializados.

Especifica el nombre del array entre paréntesis y pon cero como segundo parámetro. Esto hará que todos los elementos de la matriz se pongan a cero.

 
LOA:


¡Muchas gracias, Vladimir!

Entonces para poner a cero los elementos del array se necesita lo siguiente?

ArrayInitialize(Array_Name,0);
 
О... Vladimir se me adelantó... :)
 
artmedia70:
ArrayInitialize(Array_Name,0);

Esto es mejor: https://docs.mql4.com/ru/array/ArrayInitialize - hay un ejemplo de código concreto
 
drknn:


No, esto es demasiado complicado. Hay una forma más sencilla.

int ArrayInitialize( double &array[], double value)
Establece todos los elementos de una matriz numérica con el mismo valor. Devuelve el número de elementos inicializados.

Especifique el nombre del array entre paréntesis y ponga cero como segundo parámetro. Como resultado, todos los elementos de la matriz se pondrán a cero.


Gracias. Realmente es más fácil así.

Entonces el bucle puede utilizarse en una situación en la que necesitemos poner a cero algunos de los elementos?

O, por ejemplo, a través de un solo elemento.

 
LOA:

¡Buenas tardes!

¿Puedes darme una pista, por favor? .....

Indic_mas[]//array principal

Indic_mas_copi[]//matriz a la que se copia la matriz principal.

n //número de elementos en Indic_mas_copi[]

1. ¿La entrada Indic_mas_copi[n]=0 significa que hemos puesto a cero todos los elementos de la matriz?

2. Después de realizar ciertas operaciones, el array Indic_mas_copi[] ha cambiado los valores de algunos elementos,

La siguiente iteración repite la copia de Indic_mas[] en Indic_mas_copi[].

¿Es necesario que Indic_mas_copi[] se ponga a cero (o esté vacío) antes de esta copia?

¿o los elementos Indic_mas[] sustituirán automáticamente a los elementos Indic_mas_copi[] anteriores?

No, no es necesario. Todos los elementos de Indic_mas_copi[] serán sustituidos por los copiados de la matriz principal de Indic_mas[]
 
LOA:


Gracias. Es realmente más sencillo así.

Entonces, el bucle se puede utilizar en una situación en la que se necesita poner a cero algunos de los elementos?

O, por ejemplo, a través de un elemento.


Se puede utilizar un bucle cuando se quiere poner a cero o reiniciar algunos elementos... Un bucle, en cambio, los recorre uno a uno. Por tanto, dentro del bucle podemos introducir una regla que ordene las celdas necesarias del array. Por ejemplo, sólo tenemos que ordenar los números negativos y duplicarlos. Por lo tanto, escribiremos lo siguiente en el bucle

Si el valor de la celda actual del array es menor que cero, entonces toma el valor de esa celda del array multiplicado por dos. De lo contrario, continúe

P.D.

if(massiv[i]<0){
  massiv[i]=massiv[i]*2;
}
else{
  continue;
}
Aunque desde el punto de vista del procesador, si sabemos de antemano exactamente lo que tenemos que duplicar, es mejor aplicar la suma que la multiplicación, ya que la suma requerirá menos tiempo de CPU.
Razón de la queja: