Hatalar, hatalar, sorular - sayfa 2966
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
tartışıldı.
Orada hata bariz değil, çünkü: "belki de bu şekilde tasarlanmıştı"
Burada GetLastError() = ERR_WRONG_STRING_DATE işlevini yürüttükten sonra. Tarih yanlışsa sonuç neden yanlış değil?
Ben şüpheliyim.
Çok tembel değildim ... Saydım - 30 satırın var, 13'üm var
Çok tembel değildim ... Saydım - 30 satırın var, 13'üm var
Ana şey, sonucun eşleşmesi ve performansın düşmemesidir.
Sıralanmış bir dizide ikili bir değer aranırken hata oluştu:
Sonuç:
2 yerine 3 olmalı
Sıralanmış bir dizide ikili bir değer ararken hata oluştu:
Sonuç:
2 yerine 3 olmalı
Buradaki soru, hatayı atlamakla ilgili değil, onu düzeltmekle ilgili, özellikle de bu işlev standart olanlarda bile birçok kaynakta kullanılabileceğinden. Ve terminal kodunun kendisinde, kod düzenleyicide kullanılması hiç de dışlanmaz ...
Buradaki soru, hatayı atlamakla ilgili değil, onu düzeltmekle ilgili, özellikle de bu işlev standart olanlarda bile birçok kaynakta kullanılabileceğinden. Ve terminal kodunun kendisinde, kod düzenleyicide kullanılması hiç de dışlanmaz ...
muhtemelen düzeltecektir. Bence büyük long'larla ilgili sorun, neredeyse tüm bitlerin işgal edildiği bir durumda. birinin bu hatayı bu kadar uzun süre sonra bulması şaşırtıcı.
muhtemelen düzeltecektir. Bence büyük long'larla ilgili sorun, neredeyse tüm bitlerin işgal edildiği bir durumda. birinin bu hatayı bu kadar uzun süre sonra bulması şaşırtıcı.
Bu kadar uzun süredir sıkça kullanılan bir fonksiyonda bu hatanın bulunmamış olması şaşırtıcı.
Ve yine başlatılmamış değişkenler hakkında. Değerlerinin tahmin edilemez olabileceği açıktır. Ancak ilk defa, işlevin yürütülmesi sırasında değeri kendi başlarına değiştirebilecekleri gerçeğiyle karşı karşıyayım (böyle bir arama bulamadım). İşte komut dosyası kodu ve aldığım şey:
sonuç:
terminal:
2021.02.19 19:30:47.003 "Otkritie Broker" JSC için Terminal Otkritie Broker x64 build 2755 başladı
2021.02.19 19:30:47.113 Terminal Windows 7 Service Pack 1 build 7601, Intel Core i5-2520M @ 2.50GHz, 5 / 7 Gb bellek, 41 / 287 Gb disk, IE 11, UAC, GMT+3
Komut dosyası çalıştırmalarını tekrarlarsanız, a,b ve x değişkenlerinin başlangıç değerleri değişebilir, ancak genel davranış sabittir:
1. Komut dosyasının ilk bölümünde, koddaki a ve b değişkenlerinin değerleri değişmez, ancak PrintFormat("%I64d", 1) yürütüldükten sonra aniden PrintFormat("a==%I64d", a ) 1 verir, b için aynı. Ve en ilginç olanı (a==1)==true ve hemen (a==2)==true (b için de)!!! PrintFormat'a yapılan son çağrıda ("a==%I64d, b==%I64d", a, b) a==1 gösterir, ancak betiğin başındaki değere b == gösterir.
2. Komut dosyasının ikinci bölümünde, ilk olmayan bir değişkenin değerini değiştirmeye çalışıyorum. y=x++'dan sonra x'in değeri değişmelidir. Ama aynı kalır (bu çalışmada ==1).
Deneyin, pliz, biri betiği çalıştırın ve çıktıyı gönderin.
Bu nedenle uzmanlar için soru - bu normal davranış mı (tanımsız davranış gibi)? Yoksa bu bir bug mı?
Ve yine başlatılmamış değişkenler hakkında. Değerlerinin tahmin edilemez olabileceği açıktır. Ancak ilk defa, işlevin yürütülmesi sırasında değeri kendi başlarına değiştirebilecekleri gerçeğiyle karşı karşıyayım (böyle bir arama bulamadım). İşte komut dosyası kodu ve aldığım şey:
sonuç:
terminal:
2021.02.19 19:30:47.003 "Otkritie Broker" JSC için Terminal Otkritie Broker x64 build 2755 başladı
2021.02.19 19:30:47.113 Terminal Windows 7 Service Pack 1 build 7601, Intel Core i5-2520M @ 2.50GHz, 5 / 7 Gb bellek, 41 / 287 Gb disk, IE 11, UAC, GMT+3
Komut dosyası çalıştırmalarını tekrarlarsanız, a,b ve x değişkenlerinin başlangıç değerleri değişebilir, ancak genel davranış sabittir:
1. Komut dosyasının ilk bölümünde, koddaki a ve b değişkenlerinin değerleri değişmez, ancak PrintFormat("%I64d", 1) yürütüldükten sonra aniden PrintFormat("a==%I64d", a ) 1 verir, b için aynı. Ve en ilginç olanı (a==1)==true ve hemen (a==2)==true (b için de)!!! PrintFormat'a yapılan son çağrıda ("a==%I64d, b==%I64d", a, b) a==1 gösterir, ancak betiğin başındaki değere b == gösterir.
2. Komut dosyasının ikinci bölümünde, ilk olmayan bir değişkenin değerini değiştirmeye çalışıyorum. y=x++'dan sonra x'in değeri değişmelidir. Ama aynı kalır (bu çalışmada ==1).
Deneyin, pliz, biri betiği çalıştırsın ve çıktıyı gönderin.
Bu nedenle uzmanlar için soru - bu normal davranış mı (tanımsız davranış gibi)? Yoksa bu bir bug mı?