Karmaşık sayı (complex)

Yerleşik complex tür, iki double alana sahip bir yapıdır:

struct complex
  {
   double             real;   // Reel kısım
   double             imag;   // Sanal kısım
  };

"complex" tipi, MQL5 fonksiyonları için bir parametre olarak değer cinsinden iletilebilir (sadece referans ile geçişi yapılan sıradan yapıların aksine). DLL'lerden içe aktarılan fonksiyonlar için "complex" tipinin yalnızca referans yoluyla geçişi yapılabilir.

'i' takısı karmaşık sabitleri tanımlamak için kullanılır:

complex square(complex c)
  {
   return(c*c);
  }  
void OnStart()
  {
   Print(square(1+2i));  // parametre olarak bir sabit iletilir
  }
// karmaşık sayının bir dizge temsili olan "(-3,4)" зıktısı alınacaktır. 

Şu anda karmaşık sayılar için yalnızca basit işlemler mevcuttur: =, +, -, *, /, +=, -=, *=, /=, ==,!=.

Gelecekte, ek matematiksel işlevler eklenecektir: mutlak değerin elde edilmesi, sinüs, kosinüs vb.

vectorc

complex türünde sayılardan oluşan tek boyutlu dizidir. Karmaşık sayıların işlenmesi içindir. Şablon fonksiyonlarında vector<complex> girdisi kullanılabilir. vectorc türündeki vektörler üzerinde işlemler henüz tanımlanmamıştır.

matrix

double türünde sayılardan oluşan iki boyutlu dizidir. Veriler için bellek dinamik olarak tahsis edilir. Metotlar kullanılarak matris özellikleri elde edilebilir ve matris şekli değiştirilebilir. Şablon fonksiyonlarında matrix<double> girdisi kullanılabilir.

matrixf

Hassasiyet kaybı önemli değilse, matrix yerine float türünde sayılardan oluşan iki boyutlu dizi olan matrixf kullanılabilir. Şablon fonksiyonlarında matrix<float> girdisi kullanılabilir.

matrixc

complex türünde sayılardan oluşan iki boyutlu dizidir. Karmaşık sayıların işlenmesi içindir. Şablon fonksiyonlarında matrix<complex> girdisi kullanılabilir. matrixc türündeki vektörler üzerinde işlemler henüz tanımlanmamıştır.