MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 42

 
MrBrooklin :

MQL5 programlama dilini çalışmaya devam ediyorum ve bu konunun katılımcılarından bir görevin devamı olan script kodunu yayınlıyorum. Komut dosyası tüm modlarda test edildi. Herhangi bir sorun tespit edilmedi. Başlangıç olarak, minimum giriş parametresi sayısını belirledim. Komut dosyası kodu İngilizce olarak yazılmıştır ve materyalin özümsenmesini kolaylaştırmak için koda yapılan yorumlar Rusça'dır. Bu senaryoda, daha önce söz verdiğim gibi, bir programlama okulunun 1. sınıf öğrencisinin erişebileceği bir sunumda her şeyi açıklamaya çalıştım.

Saygılarımla, Vladimir.

TAMAM

şimdi algoritmik mantık kodunu daha okunabilir hale getiriyoruz

sadece iki satırda elde edilir:

if (have_time()>=Period_learning && have_time()!= 0 && have_patience()== true ) Print ( "Я выучу язык MQL5!" );
else Print ( "Я не выучу язык MQL5!" );

Burada daha fazla yoruma gerek yok.

 
Renat Akhtyamov :

TAMAM

şimdi algoritmik mantık kodunu daha okunabilir hale getiriyoruz

sadece iki satırda elde edilir:

if (have_time()>=Period_learning && have_time()!= 0 && have_patience()== true ) Print ( "Я выучу язык MQL5!" );
else Print ( "Я не выучу язык MQL5!" );

Burada daha fazla yoruma gerek yok.

Merhaba Renat! Katılıyorum, çok fazla yorum yazmaya değmeyebilir, ancak sıfır düzeyde programlama bilgisi olan tüm yeni başlayanların anlamalarına yardımcı olacaktır. Bu işi benden önce biri yapmışsa, eğitim çok daha hızlı geçmiştir. Yorumlar, kendi kodunuzu daha hızlı hatırlamanıza yardımcı olur. Diğer yorumlar daha kısa olabilir.

Saygılarımla, Vladimir.

 
Roman Shiredchenko :


Kodunuz ve mantığınız doğru. Dün IMHO'ma baktım, ilk başta sıfıra şaşırdım ama sonra fark çipini yakaladım ... :-)

Merhaba Roman! Evet, bunlar teknik eğitimin sonuçları ve benim düşünce mantığım biraz farklı ama Peter sıfır konusunda haklıydı, bu yüzden senaryo kodunu değiştirdi.

Saygılarımla, Vladimir.

 
MrBrooklin :

MQL5 programlama dilini çalışmaya devam ediyorum ve bu konunun katılımcılarından bir görevin devamı olan script kodunu yayınlıyorum. Komut dosyası tüm modlarda test edildi. Herhangi bir sorun tespit edilmedi. Başlangıç olarak, minimum giriş parametresi sayısını belirledim. Komut dosyası kodu İngilizce olarak yazılmıştır ve materyalin özümsenmesini kolaylaştırmak için koda yapılan yorumlar Rusça'dır. Bu senaryoda, daha önce söz verdiğim gibi, bir programlama okulunun 1. sınıf öğrencisinin erişebileceği bir sunumda her şeyi açıklamaya çalıştım.

Saygılarımla, Vladimir.

Mantık sorunları devam ediyor:

1. Fonksiyonlar bir şeyi hesaplamalıdır. Bu durumda, her iki işlev de global değişkenleri giriş değişkenlerinin değeriyle başlatır ve başka hiçbir şey yapmaz. Yani, girdi değişkenlerini koşula koyarsanız hiçbir şey değişmez.

2. Have_time, kullanıcı tarafından ayarlanan Days_passed değerine eşittir. Koşul şunu söyler: if(have_time() >= period_learning..., bu 500'dür ve sonra && have_time() >0... mantıksal bir hatadır. have_time(), 500'den büyük veya eşitse, have_time şudur: zaten sıfırdan büyük, bu nedenle bu girdi gereksiz.

3. Öğreneceğim / Öğrenmeyeceğim sorusunun sonucu sadece girdiye bağlı olmamalıdır. Arzunuz ne olursa olsun, hesaplamaları etkileyecek, tanımsız bir değere sahip bir tür değişken bulmanız gerekiyor. Aksi takdirde, hiçbir soru yok - ne girdiler, aldılar.


not have_time > 0 kaydı böylece peroid_lerning değerini kontrol ediyorsa, negatif bir değer veya sıfır girilmesi durumunda, && period_learning > 0 koşulunu koymak daha doğrudur.
 
Fast235 :

önce Dmitry Fedoseev'den dize değişkenleriyle nasıl çalışılacağını öğrenin, bilgi dizeleri başkasının kodunu inceleme aşamasında zihni büyük ölçüde bulutlar,

söktüğü yazıda her şey ortada ve aynı yerde yol boyunca pek çok noktanın işlerinden bazılarını öğreneceksiniz, buradaki yazıların çoğunun okuyucusu olarak bunu söylüyorum, sanırım burada kimse okumamıştır. benden daha fazla)

Merhaba! Tavsiye için teşekkürler. Dmitry Fedoseev'in makalelerini okudum ve okudum, ancak şimdiye kadar makalelerinden öğrenmek zor çünkü. Temel eğitimim yok. Umarım kolaylaşır. Bu arada, Learning_MQL5.mq5 betiğini yazmak, bir işlevin ne olduğunu, ne işe yaradığını ve nasıl oluşturulduğunu anlamama çok yardımcı oldu!

Saygılarımla, Vladimir.

 
Реter Konow :
Mantık sorunları devam ediyor:

1. Fonksiyonlar bir şeyi hesaplamalıdır. Bu durumda, her iki işlev de global değişkenleri giriş değişkenlerinin değeriyle başlatır ve başka hiçbir şey yapmaz. Yani, girdi değişkenlerini koşula koyarsanız hiçbir şey değişmez.

2. Have_time, kullanıcı tarafından ayarlanan Days_passed değerine eşittir. Koşul şöyle der: if(have_time() >= period_learning..., bu 500'dür ve sonra && have_time() >0 ... mantıksal bir hatadır. have_time(), 500'den büyük veya eşitse, have_time şudur: zaten sıfırdan büyük, dolayısıyla bu girdi gereksiz.

3. Öğreneceğim/öğrenmeyeceğim sorusunun sonucu sadece girdiye bağlı olmamalıdır. Arzunuz ne olursa olsun, hesaplamaları etkileyecek, tanımsız bir değere sahip bir tür değişken bulmanız gerekiyor. Aksi takdirde, hiçbir soru yok - ne girdiler, aldılar.

Selam Peter! Özellikle 2. maddede sorularınız olacağını biliyordum.

Burada kod gereksiz değil, çok düşünceli. && have_time()!= 0'ı betik kodundan aniden kaldırmayı denerseniz (bunu && have_time()> 0 olarak yazdınız), o zaman Period_learning=0 ve Days_passed=0 giriş parametreleriyle sonuç "I will MQL5 dilini öğrenin!" ve Bu, dogmatik bir bakış açısıyla kabul edilemez!

Diğer noktalarda katılıyorum - düşünülecek bir şey var.

Saygılarımla, Vladimir.

 
MrBrooklin :

Selam Peter! Özellikle 2. maddede sorularınız olacağını biliyordum.

Burada kod gereksiz değil, çok düşünceli. && have_time()!= 0'ı betik kodundan aniden kaldırmayı denerseniz (bunu && have_time()> 0 olarak yazdınız), o zaman Period_learning=0 ve Days_passed=0 giriş parametreleriyle sonuç "I will MQL5 dilini öğrenin!" ve Bu, dogmatik bir bakış açısıyla kabul edilemez!

Diğer noktalarda katılıyorum - düşünülecek bir şey var.

Saygılarımla, Vladimir.

Tamam, bakın: have_time() işlevi aslında Days_passed girdi değişkeninin değerini döndürür. Days_passed sıfıra ayarlanırsa, if(...have_time()!=0... girişi koşula geçmemize izin vermez, AMA, Period_learning sıfıra ayarlanırsa koşula geçeriz. , Period_learning > 0 girişi bizi aynı anda Days_passed değişkeninde sıfırdan ve Period_learning değişkeninde sıfırdan ve if(... have_time()!=0 ... girdisi Days_passed'de sadece sıfırdan koruyacaktır.)
 
Реter Konow :
Tamam, bakın: have_time() işlevi aslında Days_passed girdi değişkeninin değerini döndürür. Days_passed sıfıra ayarlanırsa, if(...have_time()!=0... girişi koşula geçmemize izin vermez, AMA, Period_learning sıfıra ayarlanırsa koşula geçeriz. , Period_learning > 0 girişi bizi aynı anda Days_passed değişkeninde sıfırdan ve Period_learning değişkeninde sıfırdan ve if(... have_time()!=0 ... girdisi Days_passed'de sadece sıfırdan koruyacaktır.)

Açık.

Saygılarımla, Vladimir.

 
MrBrooklin :

Açık.

Saygılarımla, Vladimir.

Temelde, elbette, ileriye doğru ciddi bir adım attınız - elbette tebrik etmeniz gereken işlevlerde ustalaştınız ve kullanmaya başladınız!)

Bu oranda, yakında takipte olacaksınız.

not merhaba demediğim için üzgünüm. Burada, forumda genellikle selam vermezler, ki bu elbette saygısızlığın bir tezahürü olarak alınmamalıdır. Yaklaşık beş yıl önce forum üyelerini selamladığımda bir moderatörün bir açıklama yaptığını hatırlıyorum. )) O zamandan beri burada merhaba demiyorum, sadece PM'de. Tekrar özür dilerim.)))
 
Реter Konow :
Temelde, elbette, ileriye doğru ciddi bir adım attınız - elbette tebrik etmeniz gereken işlevlerde ustalaştınız ve kullanmaya başladınız!)

Bu oranda, yakında takipte olacaksınız.

not merhaba demediğim için üzgünüm. Burada, forumda genellikle selam vermezler, ki bu elbette saygısızlığın bir tezahürü olarak alınmamalıdır. Yaklaşık beş yıl önce forum üyelerini selamladığımda bir moderatörün bir açıklama yaptığını hatırlıyorum. )) O zamandan beri burada merhaba demiyorum, sadece PM'de. Tekrar özür dilerim.)))

Teşvik edici sözler için teşekkürler Peter!

Kibar iletişim ile ilgili olarak, özellikle selamlar ve herkese iyi günler ve ruh hali dileklerimle. Bence bu forum çok yetersiz. Muhataplara saygı, bizim neslimize Sovyet zamanlarından beri öğretilen şeydir. Eğer site (forum) yönetimi katılımcıları selamlama konusunda bana bir açıklama yaparsa, not alıp kurallara uyacağım.

Saygılarımla, Vladimir.

Neden: