Con constantes (#define) y con un valor numérico, funciona directamente, pero no así. ¿Por qué?
Porque al definir con #define, el compilador simplemente reemplaza la macro encontrada con la entrada correcta antes de la compilación. Por lo tanto, ve
DE ACUERDO. Entonces, me atreveré. Así, la descripción de la función Print() dice que "los datos del tipo double se imprimen con la precisión de 16 dígitos decimales después del punto". De hecho, resulta que la función Print() produce datos algo redondeados:
notused: Con las constantes, es una matriz estática, y con una variable, es dinámica. Y el tamaño de una dinámica se determina usando ArrayResize.
TheXpert: La segunda dimensión y las siguientes tienen un tamaño fijo. Sólo puede ser fijado por una constante.
Rosh:
Porque cuando se define con #define, el compilador simplemente reemplaza la macro encontrada con la entrada correcta antes de la compilación. Por lo tanto, ve
que no contradice el lenguaje MQL5.
Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array en la primera y segunda dimensión se define en los cálculos y no puede ser una constante? Con ArrayResize(), se puede redimensionar sólo la primera dimensión, después de todo. ¿Y por qué puedo redimensionar un array aplicando un valor variable, mientras que no se puede establecer inicialmente?
tol64: Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array tanto en la primera como en la segunda dimensión está determinado por cálculos y no puede ser una constante? Con ArrayResize(), sólo puede cambiar el tamaño de la primera dimensión. ¿Y por qué se puede redimensionar un array mediante una variable, mientras que no se puede establecer inicialmente?
tol64: Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array tanto en la primera como en la segunda dimensión está determinado por cálculos y no puede ser una constante? Con ArrayResize(), sólo puede cambiar el tamaño de la primera dimensión. ¿Y por qué puedo redimensionar un array aplicando un valor variable, mientras que no se puede establecer inicialmente?
Echa un vistazo a la sección de operaciones de sobrecarga para un ejemplo para la clase CMatrix, tal vez esto funcione para ti.
Se necesita para determinar el tamaño de una matriz variable, pero sale el error:
//---
//---
Funciona directamente con constantes (#define) y con un valor numérico, pero no así. ¿Por qué?
Se necesita para determinar el tamaño de una matriz variable, pero sale el error:
//---
//---
Funciona directamente con constantes (#define) y con un valor numérico, pero no así. ¿Por qué?
tol64:
¿Por qué?
Con constantes (#define) y con un valor numérico, funciona directamente, pero no así. ¿Por qué?
Porque al definir con #define, el compilador simplemente reemplaza la macro encontrada con la entrada correcta antes de la compilación. Por lo tanto, ve
que no contradice el lenguaje MQL5.
DE ACUERDO. Entonces, me atreveré. Así, la descripción de la función Print() dice que "los datos del tipo double se imprimen con la precisión de 16 dígitos decimales después del punto". De hecho, resulta que la función Print() produce datos algo redondeados:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))=199.999999999716
La cuestión es que un número real se almacena en la memoria con no más de 17 dígitos significativos.
Pruebe este ejemplo para sentir la diferencia:
La descripción en la ayuda será corregida.Con las constantes, es una matriz estática, y con una variable, es dinámica. Y el tamaño de una dinámica se determina usando ArrayResize.
La segunda dimensión y las siguientes tienen un tamaño fijo. Sólo puede ser fijado por una constante.
Porque cuando se define con #define, el compilador simplemente reemplaza la macro encontrada con la entrada correcta antes de la compilación. Por lo tanto, ve
que no contradice el lenguaje MQL5.
Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array tanto en la primera como en la segunda dimensión está determinado por cálculos y no puede ser una constante? Con ArrayResize(), sólo puede cambiar el tamaño de la primera dimensión. ¿Y por qué se puede redimensionar un array mediante una variable, mientras que no se puede establecer inicialmente?
Gracias. ¿Me pueden decir qué se puede hacer si el tamaño de un array tanto en la primera como en la segunda dimensión está determinado por cálculos y no puede ser una constante? Con ArrayResize(), sólo puede cambiar el tamaño de la primera dimensión. ¿Y por qué puedo redimensionar un array aplicando un valor variable, mientras que no se puede establecer inicialmente?