Gerçekten harika bir sonuç!

 

kod:

 void DebugInfo ( )
{
   int a = 23 ;
   int s = 20 ;
   int f = 1 ;
   // Исходное условие
   bool r1 = a > = s & & a < = f & & s < = f | | ( a > = s | | a < = f ) & & s > f ;
   // Дальше пошли извращения
   bool r2 = a > = s & & a < = f & & s < = f ;
   bool r3 = ( a > = s | | a < = f ) & & s > f ;
   bool r4 = r2 | | r3 ;
   // Вывод
   Print ( r1 + " " + r2 + " " + r3 + " " + r4 ) ;
   // Результат: 0 0 1 1. А должно быть: 1 0 1 1.
}

Ve şimdi doldurma için bir soru: beni kim rahatsız ediyor yoksa MQL4 mu???

Teşekkürler:)

 

Gerçekten şaşırtıcı!


Hızlı bir şekilde kesebilirsin gibi görünüyor!

 

nelerden memnun değilsin
evet=1, hayır=0,

a<=f yürütülmüyorc

==doğru cevap

 
Korey >> :

nelerden memnun değilsin
evet=1, hayır=0,

a<=f yürütülmüyorc

==doğru cevap

Ama sonra (a>=s || a<=f) && s>f

 
WWer писал(а) >>

Ama sonra (a>=s || a<=f) && s>f

O zaman parantezler konmalıydı

 
Vinin >> :

O zaman parantezler konmalıydı

Ne için? || &&'den daha yüksek öncelik

 
( a > = s | | bir < = f ) - 1 || 0 = 1
( a > = s | | a < = f ) && s > f - 1 && 1 = 1

Ve genel olarak, parantezleri açıkça ayırmak gerekir. Ben biraz bu işe girdim.

WWer >> :

Ne için? || &&'den daha yüksek öncelik

bu yüzden betiğin net olması için kodda belirtin =)


 
Korey писал(а) >>

nelerden memnun değilsin
evet=1, hayır=0,

a<=f yürütülmüyorc

==doğru cevap

Cevap doğru, ya da çok buggy olsaydım ya da MQL4'te mantıksal işlemler çok garip kurallara göre yapılır. C/C++ veya herhangi bir şeye benzemiyor. JavaScript'e bile çevirdim:

var a=23;
var s=20;
var f=1;
// Исходное условие
var r1 = a>=s && a<=f && s<=f || (a>=s || a<=f) && s>f;
// Дальше пошли извращения
var r2 = a>=s && a<=f && s<=f;
var r3 = (a>=s || a<=f) && s>f;
var r4 = r2 || r3;
// Вывод
WScript.Echo(String(r1)+" "+String(r2)+" "+String(r3)+" "+String(r4));
Sonuç: doğru yanlış doğru doğru
 
WWer писал(а) >>

Ne için? || &&'den daha yüksek öncelik

tersine, && ||'den daha yüksek önceliğe sahiptir.

 
nen >> :

tersine, && ||'den daha yüksek önceliğe sahiptir.

MQL4'te mi? Belki, ama öyle olmalı.

 

Hiç de bile ! Buradaki öncelik "veya" (||) içindir - kesinlikle!

Parantez yoksa, önce || yürütülür, ardından &&

Bu nedenle, parantez gereklidir. acc'ye koyun. yer