Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 240

 

Haftanın gününü zamana göre belirlemenin en verimli ve en kısa yolu:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+3 )%7+1;
}

1 ile 7 arasında bir değer döndürür

1 - Pazartesi

...

7 - Pazar

 
Nikolai Semko #:

7 - Pazar

Pazar günü sıfır olduğundadaha kullanışlıdır.

 
fxsaber #:

Pazar günü sıfır olduğundadaha kullanışlıdır.

Belki o zaman:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}
 
Matematiksel olarak aynı olan bir ifade (vurgulanmış) uygulamada farklı sonuçlar üretebilir.
template <typename T>
T MathMin1( const T Num1, const T Num2 )
{
  return(Num1 < Num2 ? Num1 : Num2);    
}

template <typename T>
T MathMin2( const T Num1, const T Num2 )
{
  return(Num1 <= Num2 ? Num1 : Num2);    
}

void OnStart()
{
  Print(MathMin1(0.0, -0.0)); // -0.0
  Print(MathMin2(0.0, -0.0)); // 0.0
}
 
fxsaber # : Matematiksel olarak aynı ifade (vurgulanan) pratikte farklı sonuçlar verebilir.

İki miktar eşit olduğu sürece, bunlardan herhangi biri geçerli bir minimumdur. MathMin(1, 1)'i düşünün, fonksiyonun birinci (1) veya ikinci (1) döndürmesi fark etmez.

Dolayısıyla, 0.0 döndürmek -0.0'dan farklı değildir.

Düzenleme: bu arada, vurgulanan iki ifade aynı DEĞİLDİR.
 
fxsaber #:
Matematiksel olarak aynı ifade (vurgulanmış) uygulamada farklı sonuçlar verebilir.

Bunlar farklı ifadeler, dolayısıyla sonuç da farklı. Burada yanlış olan nedir?

İlk durumda: 0 < 0 mı? Hayır. İkinci bağımsız değişken döndürülür.

İkinci durumda: 0 <= 0 mı? Evet. İlk argüman döndürülür.

 
Ihor Herasko #:

Farklı ifadeler

fxsaber #:
Matematiksel olarak aynı ifade
 
fxsaber #:

< ve <= işaretleri farklı görünüyor.....

 
Ihor Herasko #:

< ve <= işaretleri farklı görünüyor.....

Anlamayı reddediyorsun.

 
fxsaber #:

Anlamayı reddediyorsun.

Vurgulanan ifadelerin matematiksel olarak neden aynı olduğunu da anlamıyorum.