Tipo complejo
El tipo complex integrado es una estructura con dos campos de tipo double:
struct complex
|
Esta estructura se describe en la sección de conversión de tipos porque «convierte» dos números double en una nueva entidad, de forma similar a como las estructuras se convierten en arrays de bytes y viceversa. Además, sería bastante difícil presentar este tipo sin describir antes las estructuras.
La estructura complex no tiene constructor, por lo que los números complejos deben crearse utilizando una lista de inicialización.
complex c = {re, im}; |
Para los números complejos, actualmente sólo se dispone de operaciones aritméticas y de comparación sencillas: =, +, -, *, /, +=, -=, *=, /=, ==, !=. Más adelante se añadirá ayuda para las funciones matemáticas.
¡Atención! Las variables complejas no se pueden declarar como entradas (utilizando la palabra clave input) para un programa MQL.
El sufijo 'i' se utiliza para describir constantes complejas (partes imaginarias), por ejemplo:
const complex x = 1 - 2i;
|
En el siguiente ejemplo (script Complex.mq5) se crea un número complejo y se eleva al cuadrado.
input double r = 1;
|
Con los parámetros predeterminados, el script mostrará lo siguiente:
c=(1,2) / ok
|
Aquí, los pares de números entre paréntesis son la representación de cadena del número complejo.
El tipo complex se puede pasar por valor como parámetro de funciones MQL (a diferencia de las estructuras ordinarias, que se pasan sólo por referencia). Para las funciones importadas de DLL, el tipo complex sólo debe pasarse por referencia.