从头开始自学MQL5语言 - 页 34

 
Реter Konow:
看:你事先将两个变量都设置为真(在条件之前)。也就是说,它们在脚本的每次启动中都是真实的。那么,为什么我们需要一个条件呢?在这个程序中,明确初始化为 "真 "的变量有可能不是 "真 "吗?- 不!因为你已经把这个值写进了它们,而且在代码中任何地方都不能改变。

在这种情况下,不需要条件,也不需要变量本身,因为脚本的结果永远是 "我将学习这种语言 "这个字符串。

然而,在额外的函数中计算变量值会导致不同的结果组合--一个会返回真,另一个会返回假,或者都会返回假,或者都会返回真......。在这种情况下,由于变量值的可能变化导致打印出不同的字符串,所以写入条件是合理的。

谢谢你,彼得,谢谢你的澄清!

问候,弗拉基米尔。

 
Valeriy Yastremskiy:

没有逻辑,因为这些是在脚本中设置的变量。它们要么是用户通过实例设置的变量,要么是从函数派生出来的,这更符合逻辑。

也就是说,脚本的效用应该始终存在。只是一个显示文本的脚本是没有用的。而对于数据输入,这个脚本会告诉你是否可以学习语言)而对于函数,它们根本不存在,没有写出来,如果你写,比如说,从数学知识水平、其他语言知识、空闲时间多少、欲望水平和记忆能力等方面进行计算,函数会根据计算结果返回真或假,其作用会更大))))

瓦莱里,非常感谢你的详细答复!

真诚的,弗拉基米尔。

 

这里有一个修订版的剧本,包括对那些可能或不可能看到这个主题的新剧本的提示。

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#property script_show_inputs
//---
input bool достаточно_времени=true;
input bool достаточно_терпения=true;
//---
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   if(достаточно_времени && достаточно_терпения)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//+------------------------------------------------------------------+

添加到脚本中。

  1. "在运行脚本前显示属性窗口"。
  2. 改变外部变量的能力。

问候,弗拉基米尔。

 
Реter Konow:
是的,这个变体在语法上是正确的,但它仍然缺乏逻辑。昨天Vasily写了很多关于函数的文章。这正是需要他们的地方。

bool Sufficient_time = Sufficient_time()。

bool Sufficient_patience = Sufficient_patience()。

如果(Sufficient_time && Sufficient_patience)Print("I will learn the language!")。

否则打印("我不会。")。

你必须在把时间和耐心放到条件中之前计算一下,而不是默认设置,因为条件没有意义--它总是真的。

+1.这是正确的。

 
Реter Konow:
"...你应该在把时间和耐心放在条件中之前计算一下,而不是默认设置,因为有条件的意义就消失了--它总是真实的。"

我肯定会这么做,但要晚一点,因为我的 "锅 "已经沸腾了,所以我需要把它冷却一下。

真诚的,弗拉基米尔。

 
MrBrooklin:

这是考虑到提示的情况下,对脚本的修正版本。

添加到脚本中。

  1. "在运行脚本前显示属性窗口"。
  2. 改变外部变量的能力。

问候,弗拉基米尔。

对了!然后尝试编写函数,根据其他外部变量的值来计算这些变量的值。

也就是说,函数Enough_time()将接受外部变量的值。

输入数据时间 Days_training = 100。
输入uchar Hour_in_day = 5。
...等等...

换句话说,这些函数将接受你的输入变量的值并进行计算,结果将在变量Sufficient_time和Sufficient_patience中返回,然后,你可以将其放入一个有多个选项的条件中,每个选项将打印一个不同的字符串。

 
Реter Konow:
你是对的!然后尝试编写函数,根据其他外部变量的值来计算这些变量的值。

也就是说,Sufficient_time()会取外部变量的值。

输入数据时间 Days_training_day = 100。
输入uchar Hour_in_day = 5。
...等等...

然后,函数会取输入变量的值并进行计算,结果会返回到变量Enough_time和Enough_patience中,然后你可以把它们放入一个有多个选项的条件中,每个选项都会打印一个不同的字符串。

彼得,把你的建议纳入我的自学计划。其结果将在稍后以代码脚本的形式发布。

问候,弗拉基米尔。

 
MrBrooklin:

我肯定会这么做,但要晚一点,因为我的 "锅 "已经沸腾了,所以我需要把它冷却一下。

真诚的,弗拉基米尔。

当然,休息一下吧)。
 
Реter Konow:
对了!然后尝试编写函数,根据其他外部变量的值来计算这些变量的值。

也就是说,Sufficient_time()会取外部变量的值。

输入数据时间 Days_training_day = 100。
输入uchar Hour_in_day = 5。
...等等......

随着时间的推移,这一点或多或少是清楚的,但 "足够的耐心 "的变数仍然是一个问题。我应该在里面放些什么?有耐心还是没有耐心?至少有这两个参数?我需要考虑一下。

问候,弗拉基米尔。

 
MrBrooklin:

时间或多或少是清楚的,但 "足够的耐心 "的变量是个问题。你在里面放了什么?是有耐心还是没有耐心?至少有这两个参数?我需要考虑一下。

问候,弗拉基米尔。

1.心情(通过初始化条件单元枚举类型)。

2.自我认知(同一件事)。

3.激励商数。

4.对外汇的信仰系数

...

想出几个计算公式就可以了)。