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

 
MrBrooklin :

Her şey doğru! Zamanım gün olarak. Ve eğitim süresi ve eğitimin başlamasından bu yana kaç gün geçti. Muhtemelen anlamadığım bir şey ...

Saygılarımla, Vladimir.

Koşulun mantığı açısından, öğrenmek için uygun zaman ve sabrın hesaplanması sonucunda "Dili öğreneceğim" dizesi çıktısı alınabilir. Parametrelerden biri (zaman veya sabır) sıfır ise dil öğrenilmeyecektir. Bu nedenle, koşulda mantıksal bir hata var.
 
MrBrooklin :

Teşekkürler Peter! Bu sorunu çözmem için bana zaten yardım edildi.

MQL5 programlama dilini öğrenmeye devam ediyorum ve bugün bu konunun katılımcılarından bir görevin devamı olan script kodunu gönderiyorum. Komut dosyası tüm modlarda test edildi. Her şey olması gerektiği gibi çalışıyor. Başlamak için giriş parametrelerini minimuma ayarladım.

Saygılarımla, Vladimir.

Siz ..., değişkenlerin ve fonksiyonların adlarına Rusça isimler yazmayı bırakın. Bu çok kötü bir davranış olarak kabul edilir. Kendiniz için programlar yaptığınız açık ama bu 1C değil sonuçta. Standart kod stiline hemen alışın. O zaman kesinlikle ihtiyaç duyacağınız danışmanlardan ve göstergelerden başka birinin kodunu okumanız daha kolay olacaktır.

 
Реter Konow :
Koşulun mantığı açısından, onu öğrenmek için mevcut olan zaman ve sabrın hesaplanması sonucunda "Dili öğreneceğim" dizesi çıktısı alınabilir. Parametrelerden biri (zaman veya sabır) sıfır ise dil öğrenilmeyecektir. Bu nedenle, koşulda mantıksal bir hata var.

İşlevin kendi durumunda veya komut dosyasında mantıksal bir hata mı demek istiyorsunuz?

Saygılarımla, Vladimir.

 
Vasiliy Sokolov :

Siz ..., değişkenlerin ve fonksiyonların adlarına Rusça isimler yazmayı bırakın. Bu çok kötü bir davranış olarak kabul edilir. Kendiniz için programlar yaptığınız açık ama bu 1C değil sonuçta. Standart kod stiline hemen alışın. O zaman kesinlikle ihtiyaç duyacağınız danışmanlardan ve göstergelerden başka birinin kodunu okumanız daha kolay olacaktır.

Vasily, inanmayacaksın, ama sadece "FOR"! Sadece sorunun koşulu Rusça olarak belirlendi, bu nedenle devam ediyor. Komut dosyasını İngilizce kullanarak yeniden yazdığınızdan emin olun.

Saygılarımla, Vladimir.

 
MrBrooklin :

İşlevin kendi durumunda veya komut dosyasında mantıksal bir hata mı demek istiyorsunuz?

Saygılarımla, Vladimir.

Kodda sözdizimi hatası yok ancak mantık bozuk ve dikkatle izlenmesi gerekiyor.

sufficiency_time işlevindeki hesaplamanın kendisi mantıksızdır. Sıfıra eşit olmadığında zaman yeterlidir. İşlev, zaman farkını hesaplar ve bir boole evet/hayır döndürür. Onlar. işlev hatalı biçimlendirilmiş. TimeSufficiency() hesaplamalarını yeniden gözden geçirin.

Rağmen, hayır. İşlev ushort döndürür, ancak yine de mantık yoktur. Zaman_yeterliliği sıfırdan büyük olmalıdır.
 
Реter Konow :
Kodda sözdizimi hatası yok ancak mantık bozuk ve dikkatle izlenmesi gerekiyor.

sufficiency_time işlevindeki hesaplamanın kendisi mantıksızdır. Sıfıra eşit olmadığında zaman yeterlidir. İşlev, zaman farkını hesaplar ve bir boole evet/hayır döndürür. Onlar. işlev hatalı biçimlendirilmiş. Time_Sufficiency() hesaplamalarını yeniden gözden geçirin

Rağmen, hayır. İşlev ushort döndürür, ancak yine de mantık yoktur. Zaman_yeterliliği sıfırdan büyük olmalıdır.

Şimdi açık, sadece nasıl yapacağınızı bulmanız gerekiyor. Hafta sonları yapılacak çok şey olacak.

Saygılarımla, Vladimir.

 
Реter Konow :
Kodda sözdizimi hatası yok ancak mantık bozuk ve dikkatle izlenmesi gerekiyor.

sufficiency_time işlevindeki hesaplamanın kendisi mantıksızdır. Sıfıra eşit olmadığında zaman yeterlidir. İşlev, zaman farkını hesaplar ve bir boolean evet/hayır döndürür. Onlar. işlev hatalı biçimlendirilmiş. TimeSufficiency() hesaplamalarını yeniden gözden geçirin.

Rağmen, hayır. İşlev ushort döndürür, ancak yine de mantık yoktur. Zaman_yeterliliği sıfırdan büyük olmalıdır.

Yeni başlayanlar için yazıyorsanız, sade bir dille yazın, uzaktan, küçümsenecek bir şey yok.

ve tehditleriniz nerede ilginç olabileceklerini görecek
 

MQL5 programlama dilini öğrenmeye ve bu konudaki katılımcılar tarafından bir görevin yürütülmesinin devamı olan script kodunu yayınlamaya devam ediyorum. Komut dosyası tüm modlarda test edildi. Herhangi bir sorun tespit edilmedi. Başlangıç olarak, minimum sayıda giriş parametresi uyguladım. 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.

 //+------------------------------------------------------------------+
//|                                                Learning_MQL5.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright    "Copyright 2020, MetaQuotes Software Corp."
#property link          "https://www.mql5.com"
#property description "Скрипт подводит итог обучения языку программирования MQL5. В зависимости от "
#property description "входных параметров печатает во вкладке \"Эксперт\" торгового терминала два"
#property description "сообщения на русском языке: \"Я выучу язык MQL5!\" или \"Я не выучу язык MQL5!\""
#property description "Код скрипта написан на основе примера, приведенного Valeriy Yastremskiy на сайте"
#property description "MQL5, в теме \"Самообучение языку MQL5 с полного нуля\"." 
#property description "======================================================"
#property description "Ссылка на пример https://www.mql5.com/ru/forum/352460/page30#comment_18646826"
//---
#property version      "1.00"                //версия скрипта 1.00
//---
#property script_show_inputs                //выводить окно со свойствами перед запуском скрипта 
//--- Зададим входные параметры скрипта: 
input ushort Period_learning= 500 ;         //Полный период обучения в днях
input ushort Days_passed= 10 ;               //Сколько дней прошло с начала обучения
input bool    Patience= true ;               //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные:
//переменная enough_time (достаточно времени), где ushort - минимальное значение "0", максимальное "65535"
ushort enough_time;
//переменная enough_patience (достаточно терпения), где bool - логическое значение: истина (true) или ложь (false)
bool enough_patience;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart () //старт работы скрипта
  {
/* Зададим условие для работы скрипта. Если:
   1. значение функции "имею время" будет больше или равно "Полного периода обучения", заданного 
      во входных параметрах скрипта;
   2. и значение функции "имею время" не будет равно нулю;
   3. и значение функции "имею терпение" будет равно значению истина (true)
*/
   if (have_time()>=Period_learning && have_time()!= 0 && have_patience()== true )
     {
       Print ( "Я выучу язык MQL5!" );     //выводим сообщение "Я выучу язык MQL5!"
     }
   else //в противном случае
     {
       Print ( "Я не выучу язык MQL5!" ); //выводим сообщение "Я не выучу язык MQL5!"
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//--- Функция "имею_время"
ushort have_time()             //создаём функцию "имею_время" и присвоим тип данных ushort
  {
   enough_time=Days_passed;   //задаём для значения enough_time (достаточно времени) значение равное
                               //входному параметру "Сколько дней прошло с начала обучения" (Days_passed)

   return (enough_time);       //возвращаем значение "достаточно времени" в функцию "имею время"
  }
//--- Функция "имею_терпение"
bool have_patience()           //создаём функцию "имею_терпение" и присвоим тип данных bool
  {
   enough_patience=Patience;   //задаём для переменной enough_patience (достаточно терпения) значение равное
                               //входному параметру "Терпение" (Patience): истина или ложь

   return (enough_patience);   //возвращаем значение "достаточно терпения" в функцию "имею терпение"
  }
//+------------------------------------------------------------------+
 

ö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 birç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)

 
MrBrooklin :

Her şey doğru! Zamanım gün olarak. Ve eğitim süresi ve eğitimin başlamasından bu yana kaç gün geçti. Muhtemelen anlamadığım başka bir şey var ...

Saygılarımla, Vladimir.



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 ... :-)
Neden: