Hatalar, hatalar, sorular - sayfa 304

 
Yedelkin :

bölümden alıyorum MQL5 Referansı / Dil Temelleri / Fonksiyonlar

Ancak derleyici ikinci satırda çıktı verir: '(' - noktalı virgül bekleniyor

Ne anlama geliyor?

Düzenlemedeki örneğe göre kontrol ettim (ilk geçirilen parametrenin değiştirilmesiyle). her şey yolunda, hata yok.

referans için doğru örnek şuna benzer

 //function linfunc
double linfunc( double a, double b)
{
return (a + b);
}

İlk küme parantezini yuvarlak olanla değiştirdiğimde, yalnızca bir testte kişisel olarak sizin gibi bir mesaj alabilirim . Sonra bu mesaj çıktı

'(' - noktalı virgül bekleniyor (noktalı virgül bekleniyor)

Parantez sayısı (sağ ve sol) uyuşmuyorsa bir uyarı görüntülenir.

';' - Beklenmedik belirteç
'}' - noktalı virgül bekleniyor

not

Mevcut örneği (Rusça "a" ile) derlemeye çalışırsanız, derleyici beklendiği gibi bir hata verir.

'a' - bildirilmemiş tanımlayıcı

 
Yedelkin :

Olmayanı başkaları için düşünmemelisiniz :) Sembol, editörde hemen düzeltildi, tabii ki. İmleç 'a' karakterinden önce değil de açılış parantezinden önce olduğunda bir hata verilir. Bir insan olarak, alıntılanan derleyici yorumunda bunu fark etmiş olmalısınız.

Soru şu: https://www.mql5.com/en/forum/1111/page304#comment_48136

Açıklama. Soru, referans kitaptan aptalca örnekler topladığım ve aptalca derlediğim için değil, çalışan bir işlev oluştururken bu hatayla ilgili bir mesaj göründüğü için ortaya çıktı. Referans kitaptaki örneğe atıfta bulunmak hiçbir şeyi değiştirmedi. Başlıktaki argümanların açıklamasını bile kaldırabilirsiniz - sorun devam ediyor.

Evet, büyük olasılıkla bu örnekle ilgili olmayan bir hatası var ....

Kodun tamamına bakmanız gerekiyor ...

 
Yedelkin :

bölümden alıyorum MQL5 Referansı / Dil Temelleri / Fonksiyonlar

Ancak derleyici ikinci satırda çıktı verir: '(' - noktalı virgül bekleniyor

Ne anlama geliyor?

Örnekteki harf düzeltildi ancak tam olarak böyle bir hata almak mümkün değildi. Yeniden üretebilmemiz için tam kodu verebilir misiniz?
 
Rosh :
Örnekteki harf düzeltildi ancak tam olarak böyle bir hata almak mümkün değildi. Yeniden üretebilmemiz için tam kodu verebilir misiniz?

Dikkatiniz için hepinize teşekkür ederim! Mesele şu ki, bir hata başlatabilecek herhangi bir "tam kod" mevcut değil. C++ ders kitabından, bir fonksiyona argüman olarak iletilen harici bir değişkenin değerinin fonksiyon tarafından değiştirilemeyeceği (veya bunun gibi bir şey - genel olarak, kendi kendine eğitim alanından) ifadesini kontrol etmeye karar verdim. . Kontrol için ilkel bir işlev oluşturuldu - derleyici bir hata veriyor. Referans kitabına döndüm, örneği kopyaladım, örnekteki sembolü düzelttim - hala aynı hata. Hem komut dosyası şablonuna hem de uzman şablonuna bir işlev eklemeye çalıştım - hata değişmiyor. Aslında, "komple kod" yalnızca, onTick() veya onStart() işlevinin boş gövdesine eklenen örnekteki işlevden oluşur.

Akşam böyle bir sözde tam kod göndereceğim, ancak yardımcı olup olmayacağını bilmiyorum. Bir hafta boyunca "uyku ve geri" modunda kullanıldığı için bilgisayarı yeniden başlatmayı da deneyeceğim.

 
Rosh :
Örnekteki harf düzeltildi ancak tam olarak böyle bir hata almak mümkün değildi. Yeniden üretebilmemiz için tam kodu verebilir misiniz?
 void OnStart ()
  {
   double                        // тип возвращаемого значения
   linfunc ( double a, double b)   // имя функции и список параметров
     {
                               // составной оператор
       return (a + b);           // возвращаемое значение
     }
  }
Bir şekilde çoğalır.
 
Swan :
Bir şekilde çoğalır.

Bir işlevi diğerinin içinde tanımlamaya çalışıyorsunuz - buna izin verilmiyor. İşlev Çağrısı bölümünde bu açıkça belirtilir:

Bir işlev, programın herhangi bir yerinde global düzeyde , yani diğer işlevlerin dışında bildirilebilir veya bildirilebilir. Bir işlev, başka bir işlevin içinde bildirilemez veya bildirilemez.

 
Rosh :

Bir işlevi diğerinin içinde tanımlamaya çalışıyorsunuz - buna izin verilmiyor. İşlev Çağrısı bölümünde bu açıkça belirtilir:

Açıklama için teşekkürler! Tam benim durumum.

Teorik bilgi, pratikte uygulanmasının doğruluğunu henüz garanti etmez :) Benim eksikliğim.

 

392 oluşturun.

Bir grafiği silerken , silinen grafikler listesine dahil edilmez. "Dosya">"Uzaktan kumandayı aç" menü öğesinin çalışmadığı ortaya çıktı.

Grafiği, uzaklarda görmeyi umarak (genişletmek yerine) yanlışlıkla kapattı, ama sonra ...

 
Ashes :

392 oluşturun.

Bir grafiği silerken, silinen grafikler listesine dahil edilmez. "Dosya">"Uzaktan kumandayı aç" menü öğesinin çalışmadığı ortaya çıktı.

Grafiği, uzaklarda görmeyi umarak (genişletmek yerine) yanlışlıkla kapattı, ama sonra ...

Kutuyu kontrol et


 

Bazı aracılar uzaktan başlamaz, işte günlük:

LE       0        5.0 . 6.84          14 : 51 : 19         login (build 392 )
HN       2        Tester   14 : 51 : 20         initial synchronization error
JF       2        5.0 . 6.84          14 : 51 : 20         send error 10038
LJ       0        Tester   14 : 51 : 20         tester agent shutdown
KO       0        5.0 . 6.84          15 : 25 : 41         login (build 392 )
HD       2        Tester   15 : 25 : 42         initial synchronization error
NM       0        Tester   15 : 25 : 42         tester agent shutdown
HM       0        127.0 . 0.1        15 : 36 : 37         login (build 392 )
FK       0        Network 15 : 36 : 38          2548 bytes of optimization passes loaded
HM       0        Network 15 : 36 : 38          16 bytes of input parameters loaded
HE       0        Network 15 : 36 : 38          3788 bytes of group info loaded
GP       0        Network 15 : 36 : 38          3358 bytes of tester parameters loaded
HG       0        Network 15 : 36 : 38          2948 bytes of input parameters loaded
KL       0        Network 15 : 36 : 38          671 bytes of selected symbols loaded
CD       0        Tester   15 : 36 : 38         expert file added: Experts\MyExperts\ExpCrossEMA.ex5. 133395 bytes loaded
QS       0        Tester   15 : 36 : 38         initial deposit 5000.00 USD, leverage 1 : 100
PJ       0        Tester   15 : 36 : 38         successfully initialized
NP       0        Network 15 : 36 : 38          146 Kb of total initialization data received
MG       0        Tester   15 : 36 : 38         optimization pass 393 started
LR       0        TesterAgent     15 : 36 : 38         Intel Core2 Duo  E8200 @ 2.66 GHz, 2047 MB, PR49
DI       0        Symbols 15 : 36 : 40         EURUSD: symbol synchronized, 2904 bytes of symbol info received
QS       0        History 15 : 36 : 40         EURUSD: load 704 Kb of history data to synchronize
OF       0        History 15 : 36 : 40         EURUSD: history synchronized from 2009.01 . 02 to 2011.01 . 31
KK       0        History 15 : 36 : 42         EURUSD: contains 366322 M1 records of beginning data from 2009.01 . 02 10 : 00 to 2009.12 . 31 18 : 59
CH       0        History 15 : 36 : 42         EURUSD,M5: history cache reserved for estimated 150171 bars
JO       0        History 15 : 36 : 42         EURUSD,M5: history begins from 2009.01 . 02 10 : 00
NK       0        Tester   15 : 36 : 42         EURUSD,M5 (Alpari-Demo): every tick generating
KS       0        Tester   15 : 36 : 42         EURUSD,M5: testing of Experts\MyExperts\ExpCrossEMA.ex5 from 2010.01 . 01 00 : 00 to 2011.01 . 01 00 : 00 started with inputs:
PN       0        Tester   15 : 36 : 42           Inp_Signal_CrossEMA_FastPeriod= 30
GG       0        Tester   15 : 36 : 42           Inp_Signal_CrossEMA_SlowPeriod= 18
DS       0        Tester   15 : 36 : 42           Inp_Expert_Title=ExpCrossEMA
MK       0        Tester   15 : 36 : 42           Inp_Money_FixLot_Percent= 10
FM       0        Tester   15 : 36 : 42           Inp_Money_FixLot_Lots= 0.1
GO       0        ExpCrossEMA (EURUSD,M5) 15 : 36 : 42          2010.01 . 01 00 : 00 : 00    CSignalCrossEMA::ValidationSettings: period of slow EMA must be greater than period of fast EMA
RF       0        ExpCrossEMA (EURUSD,M5) 15 : 36 : 42          2010.01 . 01 00 : 00 : 00    OnInit: error signal parameters
DM       2        Tester   15 : 36 : 42         tester stopped because OnInit failed
FG       0        Network 15 : 36 : 42          16 bytes of tester parameters received
PR       0        Tester   15 : 36 : 42         optimization pass 1817 started
FK       0        Tester   15 : 36 : 42         initial deposit 5000.00 USD, leverage 1 : 100
FL       0        Tester   15 : 36 : 44         EURUSD,M5 (Alpari-Demo): every tick generating
GE       0        Tester   15 : 36 : 44         EURUSD,M5: testing of Experts\MyExperts\ExpCrossEMA.ex5 from 2010.01 . 01 00 : 00 to 2011.01 . 01 00 : 00 started with inputs:
GE       0        Tester   15 : 36 : 44           Inp_Signal_CrossEMA_FastPeriod= 28
KM       0        Tester   15 : 36 : 44           Inp_Signal_CrossEMA_SlowPeriod= 49
DJ       0        Tester   15 : 36 : 44           Inp_Expert_Title=ExpCrossEMA
IM       0        Tester   15 : 36 : 44           Inp_Money_FixLot_Percent= 10
RF       0        Tester   15 : 36 : 44           Inp_Money_FixLot_Lots= 0.1
GO       0        Tester   15 : 36 : 45         output to log disabled
IO       0        Tester   15 : 37 : 10         OnTester result 0

Localhost aracılığıyla bu ajan yerel olarak çalışır.

Nedeni ne olabilir?