Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
İkinci sayfada, eğer öyleyse, derleyicideki bir hata hakkında değil, geliştiricilerin beyinlerindeki bir hata hakkında konuşmamız gerektiği konusunda hemfikirdim. Kusura bakmayın bu konuyu daha çok gülmek için açtım.
İşte şimdi anlamadığım şey şu.
MQL derleyicisi neye dayanır? Sonuçta, eğer normal bir dilde geliştirilmişse, o zaman programcıların ilk etapta çarpma ve toplama işlemlerinin eşit önceliğe sahip olması gerçeği karşısında şaşırmış olmaları gerekirdi. Bunu nasıl özleyebilirler? Gerektiğinde ve gerekmediği yerde parantezleri arka arkaya koymak gerçekten nedir? Bu arada, çok sayıda parantez de kodun görünürlüğünü kötüleştirir. Ve programcılarınız 2 + 3 * 4 gibi aritmetik işlemleri başlattığında, ayrıca 2 + (3 * 4) yazarlar, aksi takdirde, Allah korusun, C++ derleyicisinde bir hata ve 100 yüz parantezin iç içe geçmesi bir ifade elle hesaplanmış mutluluk olmalı :)
Bu, C, Java, Fortran, MathCad vb. geliştiricilerin kafasındaki bir hatadır. vb. vb.
Nasıl hala anlamıyorsun!
not
Her ne kadar itiraf edeyim ki, bunu anlamam da biraz zaman aldı.
Her ne kadar itiraf edeyim ki, bunu anlamam da biraz zaman aldı.
Bazı mantıksal kombinasyonların neden olması gerektiği gibi yapılmak istemediği ancak şimdi anlaşıldı. Yapay parantez eklemek zorunda kaldım.
Daha önce hiçbir şey bunu açıklayamazdı. Ama konuyu da açmadı. Rastgele, doğru çözümü buldum. Ama her şeyi dürtmek için ne kadar dürtmen gerekiyor?
Bazı mantıksal kombinasyonların neden olması gerektiği gibi yapılmak istemediği ancak şimdi anlaşıldı. Yapay parantez eklemek zorunda kaldım.
Daha önce hiçbir şey bunu açıklayamazdı. Ama konuyu da açmadı. Rastgele, doğru çözümü buldum. Ama her şeyi dürtmek için ne kadar dürtmelisin?
RTFM
*rofl*
Her şey değil elbette, ama her zaman bahse girerim. Ve tamamen alışkanlıktan, bu "geliştiricilerin kafasındaki hata"yı öğrenmeden çok önce onları giydim. Ve parantez koyarak onsuz yapabilirsem, öncelikleri netleştirmek için neden bir kez daha yardıma tırmanmalıyım? Bu nedenle, bu "böcek" beni eğlendirse de benim için bir felaket olmadı.
Ve daha önce, C'de boolean bir şey yazdığımda, öncelikler hakkında hiçbir şüphem olmamasına rağmen, onları da ayarladım. Ve dürüst olmak gerekirse, parantezsiz karmaşık bir boole ifadesinin pek okunaklı olmadığını düşünüyorum.
Not Sadece 2+3*4 gibi saçma örnekler vermemenizi rica ederim. Aritmetik işlemler için böyle bir öncelik hilesi olsaydı, kesinlikle pişmanlık duymadan buna gerçek bir bug derdim.
Bu arada:
x 1 veya (x 2 ve x 3 ) = (x 1 veya x 2 ) ve (x 1 veya x 3 )
x 1 ve (x 2 veya x 3 ) = (x 1 ve x 2 ) veya (x 1 ve x 3 )
Buradan, Boole cebri bakış açısından, or ve ve işlemlerinin aynı önceliğe sahip olduğu sonucu çıkar.
Andrey, Boole cebrindeki bu işlemlerin önceliklerinin eşit olduğunu tam olarak nereden çıkardın? Karşı örnek:
a=1, b=0, c=0 için
(a veya b) ve c = (1 veya 0) ve 0 = 0
a veya (b ve c) = 1 veya (0 ve 0) = 1
MQL derleyicisi neye dayanır? Sonuçta, eğer normal bir dilde geliştirilmişse, o zaman programcıların ilk etapta çarpma ve toplama işlemlerinin eşit önceliğe sahip olması gerçeği karşısında şaşırmış olmaları gerekirdi. Bunu nasıl özleyebilirler?
İşte başka bir çarpıtma örneği. Aynı zamanda, konuyu başlatan kişi eğlence için bir konu başlattığını ve bu noktada hala belgeleri okuduğunu bildiriyor.
İşte başka bir çarpıtma örneği. Aynı zamanda, konuyu başlatan kişi eğlence için bir konu başlattığını ve bu noktada hala belgeleri okuduğunu bildiriyor.
Doprikalovsya :-) Belki de büyük keşiflerin tamamen farklı amaçlarla kolaylıkla yapıldığı doğrudur.
Doprikalovsya :-). Büyük keşiflerin tamamen farklı amaçlarla doğal olarak yapıldığı doğru olabilir.
Bu "keşif" büyük olanlara atıfta bulunmak pek mantıklı değil. Sadece gerçeği belirtmeye ve unutmaya değer. Ve genel olarak, Boole işlemlerinin önceliği konusu çok zorlayıcıdır: geliştiriciler için parantez olmadan farklı işlemlerle Boole ifadeleri oluşturmayı yasaklamak ve bu tür yapıları hatalı olarak değerlendirmek daha ucuz olacaktır.
Andrey, Boole cebrindeki bu işlemlerin önceliklerinin eşit olduğunu tam olarak nereden çıkardın? Karşı örnek:
a=1, b=0, c=0 için
(a veya b) ve c = (1 veya 0) ve 0 = 0
a veya (b ve c) = 1 veya (0 ve 0) = 1
a = güzel
b = akıllı
c = zengin
x= a && b && c ;
y = bir || b || c;
Acaba Andrey neyi tercih ederdin: x = 1 mi yoksa y = 1 mi?
Andrey, Boole cebrindeki bu işlemlerin önceliklerinin eşit olduğunu tam olarak nereden çıkardın?
İşlemlerin simetrisinden. Ve işlemlerin simetrisi doğrudan seçilen formüllerden gelir.
Simetrik işlemlerden biri diğerine göre öncelikli olamaz.
Andrei'nin neyi tercih edeceğini merak ediyorum: x = 1 veya y = 1?
Kişisel ve alaycı olmadan tartışmayı tercih ederim, Eric.
______________________
ben ne için
A && B || ifadesinin sonucu C, Boole cebri bakış açısından tanımsızdır.