Gerçekten harika bir sonuç! - sayfa 2

 

Belgelere bakarız Öncelikler ve işlemlerin yürütme sırası :

Tablodaki her işlem grubu aynı önceliğe sahiptir. Bir grup işlemin önceliği ne kadar yüksekse, tabloda o kadar yüksekte bulunur. Yürütme sırası, işlemlerin ve işlenenlerin gruplandırılmasını belirler.

 () Fonksiyon çağrısı Soldan sağa
[] Bir dizi öğesi seçin
 ! Mantıksal olumsuzlama Sağdan sola
- İşaret değişikliği
++ Bir artış (artırma)
-- Bir azalma (azaltma)
~ Bit düzeyinde olumsuzlama (tamamlayıcı)
 & Bitsel işlem VE Soldan sağa
| Bit düzeyinde VEYA işlemi
^ Bit düzeyinde özel VEYA işlemi (hariç VEYA)
<< Sola Kaydır
>> sağa kaydır
 * Soldan Sağa Çarpma
/ Bölünme
% Modülo
 + Soldan Sağa Toplama
- çıkarma
 < Soldan Sağa Daha Az
<= Küçük veya eşit
> daha fazla
>= Büyüktür veya eşittir
== Eşittir
!= Eşit değil
 || Mantıksal işlem VEYA Soldan sağa
 && Mantıksal işlem VE Soldan sağa
 = Sağdan Sola Atama
+= Atama ile ekleme
-= Atama ile çıkarma
*= Atama ile çarpma
/= Atama ile bölme
%= Atama ile modulo bölümü
>>= Atama ile sağa kaydırma
<<= Atamalı sola kaydırma
&= Bit düzeyinde VE atamalı
|= Bit düzeyinde VEYA atamalı
^= atama ile XOR
 , Virgül Soldan sağa

Önceliği en yüksek olan parantezler, işlemlerin gerçekleştirilme sırasını değiştirmek için kullanılır.


Dikkat: MQL4 dilinde işlem yürütme önceliği, C dilinde kabul edilen öncelikten biraz farklıdır.


Yani her şey doğru


 

çok komik


Kontrol etmek için çok tembelseniz, çalıştırmadan C'ye derleyin.


Derleyici %100 GLUCK'tur.

 

Ey CENNET!

C'DE BİR GLUCK VAR VE GEZEGENDEKİ KRİZİN NEREDEN GELDİĞİNİ DÜŞÜNDÜK.

 

Yaşa ve öğren. Her zaman önce AND'nin, sonra OR'nin yapıldığını düşündüm. Ve bu anlayışla, tüm programlar iyi çalıştı. Hatta çok karmaşık mantıksal kombinasyonlar.

ve burada...

Hayır, forumları okumamak daha iyidir. Her şeyi karıştırıyorlar.

Programlar iyi çalıştı .... şimdi başarısız olacaklar ... :)))))))))

 
Rosh , vay be, doğru... ne matematikte ne de diğer dillerde böyle bir şey yok ama MQL4'te doğru mu? O zaman bu, geliştiricilerin beynindeki bir hatadır :) Pardon...
 
rid >> :

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


ancak...

   bool a = false , 
      b = true , 
      c = false ;
   
   bool res = a | | b & & c ;
   Print ( res ) ;                // 1 !
teneke
 
... ve burada ... parantezleri koyun, parantezleri koyun, parantezleri koyun, beyler! Ve sorun yok. Ve program daha anlaşılır olacaktır. Hiç kimse vaat etmedi MQL4 = C++/
 
Uyulması gereken bir standart var. Ve geliştiriciler, genel olarak kabul edilenle çelişen kendi standartlarını üretirlerse, o zaman ... kir ... çöptür.
 

matkad'daki ilk gönderiyi kontrol ettim. Cevap 1 0 1 1

İşte kod

 

Dürüst olmak gerekirse, mantıksal ve bit işlemlerinin önceliğini hiçbir zaman ezberlemedim. Doğuştan tembellik nedeniyle, parantezleri doğru yerlere koydum.

"Birçok şey var dostum Horace..."

Neden: