//+------------------------------------------------------------------+//| 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); //возвращаем значение "достаточно терпения" в функцию "имею терпение"
}
//+------------------------------------------------------------------+
顺便说一句,我知道一个例子,它可以让我在自己的挑战中获得将牌。但我不会写它,原因很明显。
帆船....))))
关于全局变量 的邪恶,同理,公共类的字段也是如此。
下面我们来看看。
现在正确的解决方案是:改变一个全局变量,如果你不能摆脱拐杖)只能通过一个函数。
关于全局变量 的邪恶,同理,公共类的字段也是如此。
下面我们来看看。
现在正确的解决方案是:改变一个全局变量,如果你不能摆脱拐杖)只能通过一个函数。
不,我们没有。这个例子是来自一个带着面纱的巴解组织。而我们在这里讨论的是它的一个子集。也就是说,这个例子表明,有些事情通常只有在OOP中才能解决。仅有功能是不够的。因此,它本身并不是一个矛盾,而是一个二星级的任务。
对。只要我们写的程序不超过~3000行,我们就可以安全地使用全局变量。然后,如果弗拉基米尔想换成OOP,他就会放弃它们)。对吗?
不,不是的。你必须从一开始就学会)全局变量 的每一个声明(不要与输入参数混淆,尽管它们也应该更小)都应该有明确的理由,并使用最不讨好的语句(如underjunct vulgaris b...)
不,不是的。你必须马上学会)如果你说邪恶,就是邪恶)每一个全局变量的 声明(不要与输入参数混淆,虽然它们也应该更小)都应该有明确的理由,并使用最不光彩的语句(如underdog vulgaris b。)
我阅读了所有关于全局变量的信息,并理解了所有参与讨论的人想对我说的话。我将学习如何编写程序代码,同时尽量不使用全局变量。谢谢大家的建设性意见
问候,弗拉基米尔。
明白了。全局变量是邪恶的。俗话说..."什么对俄罗斯人有利......" ))))
我继续学习MQL5编程语言。我再次粘贴了修改后的脚本代码,其中考虑到了本主题参与者的提示。我已经在所有模式下测试了该脚本。没有发现问题。首先,我应用了最小数量的输入参数。脚本代码是用英语写的,对代码的评论是用俄语写的,这样更容易消化。正如我之前所承诺的,我试图以一个编程学校的一级学生可以理解的方式来描述这个脚本。
我希望我完全按照这个主题的参与者告诉我的那样做,但我可能是错的。
问候,弗拉基米尔。