//+------------------------------------------------------------------+//| 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//выводить окно со свойствами перед запуском скрипта //--- Зададим входные параметры скрипта:inputushort Period_learning=500; //Полный период обучения (в днях)inputushort Days_passed=10; //Сколько дней прошло с начала обучения (в днях)inputbool Patience=true; //Терпение (true - достаточно; false - не достаточно)//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart() //старт работы скрипта
{
/* Зададим условие для работы скрипта. Если:
1. значение функции "имею время" будет равно значению истина (true)
2. и значение функции "имею терпение" будет равно значению истина (true)
*/if(have_time()==true && have_patience()==true)
{
Print("Я выучу язык MQL5!"); //выводим сообщение "Я выучу язык MQL5!"
}
else//в противном случае
{
Print("Я не выучу язык MQL5!"); //выводим сообщение "Я не выучу язык MQL5!"
}
}
//+------------------------------------------------------------------+//| have_time function (функция "имею_время") |//+------------------------------------------------------------------+bool have_time() //создаём функцию "имею_время" и присвоим тип данных bool
{
/* создаём переменную enough_time (достаточно времени), где bool - логическое значение:
истина (true) или ложь (false) и предопределяем её значение равное false
*/bool enough_time=false;
/* Если:
1. значение входного параметра Period_learning больше нуля
2. и значение входного параметра Days_passed больше или равно значения входного параметра Period_learning
*/if(Period_learning>0 && Days_passed>=Period_learning)
{
enough_time=true; //то значение enough_time (достаточно времени) будет равно истине (true)
}
else//в противном случае
{
enough_time=false; //значение enough_time (достаточно времени) будет равно ложь (false)
}
return(enough_time); //возвращаем значение "достаточно времени" в функцию "имею время"
}
//+------------------------------------------------------------------+//| have_patience function (функция "имею_терпение") |//+------------------------------------------------------------------+bool have_patience() //создаём функцию "имею_терпение" и присвоим тип данных bool
{
/* создаём переменную enough_patience (достаточно терпения), где bool - логическое значение:
истина (true) или ложь (false) и предопределяем её значение равное false
*/bool enough_patience=false;
enough_patience=Patience; //задаём для переменной enough_patience (достаточно терпения) значение равное//входному параметру "Терпение" (Patience): истина или ложьreturn(enough_patience); //возвращаем значение "достаточно терпения" в функцию "имею терпение"
}
//+------------------------------------------------------------------+
ところで、私は自分の挑戦にチェックメイトを与えるような例を知っています。でも、理由は明白なので、書きません。
出航しました......))))
グローバル 変数の悪について、そして同じ意味で、パブリッククラスのフィールドについて。
ここでは、その様子をご紹介します。
今すぐ正しい解決策:グローバル変数を変更し、あなたが離れて松葉杖から得ることができない場合)唯一の関数を介して。
グローバル 変数の悪について、そして同じ意味で、パブリッククラスのフィールドについて。
ここでは、その様子をご紹介します。
今すぐ正しい解決策:グローバル変数を変更し、あなたが離れて松葉杖から得ることができない場合)唯一の関数を介して。
いいえ、そうではありません。この例は、ベールに包まれたPLOのものです。そして、ここで議論しているのは、そのサブセットなのです。つまり、この例は、OOPでなければ普通に解決できないことがあることを示しているのです。機能だけでは物足りないでしょう。だから、それ自体は矛盾ではなく、二つ星の課題なのです。
そうですね。3000行程度までのプログラムであれば、安全にグローバル変数を使用することができます。そして、VladimirがOOPに切り替えたいと思えば、それらを放棄することになる)。そうだろ?
いいえ、そんなことはありません。グローバル変数(入力パラメータと混同しないように、入力パラメータも小さくすべきですが)の宣言はすべて明確に正当化し、最も好ましくない文(underjunct vulgaris bのように...)を使用して行わなければなりません。)
いいえ、そんなことはありません。すぐに学ばなければならない)悪と言えば悪だ)グローバル変数(入力パラメータと混同しないように、それらも小さくするべきだが)の宣言はすべて、明確に正当化し、最も不愉快な文(アンダードック下品bのように)を使って行わなければならない。
グローバル変数に関するすべてのメッセージを読み、この議論の参加者全員が私に言いたかったことを理解しました。グローバル変数を使わないようにしながら、プログラムコードの書き方を学んでいきます。皆さん、このような建設的なアドバイスをありがとうございました
ウラジミールさん、ありがとうございます。
了解です。グローバル変数は邪道諺にもあるように..."ロシア人のためになることを..." ))))
プログラミング言語「MQL5」の勉強を続けています。このスレッドの参加者からのヒントを考慮して、再度スクリプトのコードを修正したものを貼り付けます。すべてのモードでスクリプトをテストしました。問題なく検出されました。まず始めに、最小限の入力パラメータを適用しています。スクリプトのコードは英語で書かれており、コードへのコメントはロシア語で書かれているため、消化しやすくなっています。先ほどの約束通り、プログラミングスクールの1期生にも理解できるようにスクリプトを記述してみました。
このスレッドの参加者に言われたとおりにしたつもりですが、間違っているかもしれません。
ウラジミールさん、ありがとうございます。