关于MQL4编程的在线书籍的测试版 - 由Sergey Kovalev (SK.)撰写。 - 页 11

 

到SK

1.该教程是作为测试版发布的,即提出了批评意见。
2.好吧,我强调了这句话,并找到了 "根据定义,所有数组都是静态的 "这句话。))也就是说,这不是我的问题。
3.如果我们武断地按照教科书上的这一句批判性话语,认为所有数组的定义都是静态的,我们可以在追踪器中得到一个地址错误 "ArrayMinimum 函数的起始位置不正确"。
(这一句话并没有减损教科书的优点,为你SK 点赞)
4)所以。首先,静态数组是在内存分配的意义上。
或不,每个元素都可能有一个新的初始化。
我们在MQL4中看到了什么?在每次调用时,每个元素都被整齐地初始化为默认的0,明确地来自定义。
即子程序中的数据在没有静态预定义的情况下不被存储。
这意味着MQL4子程序在执行时要动态分配可变内存。
在MQL4子程序中,所有变量和所有没有明确大小的数组默认为动态。否则,它们应该用静态描述来固定。
5.例如,动态内存分配是一个机会,可以声明 double a[][]...[]; 具有空尺寸。
但有必要提及的是,程序员应负责解决。
(在上面的例子中,标准函数是由一个旧的引用来寻址的,并不在数组的边界内)。

 
Korey:

到SK


好的。
 
问题如下。

这本书是用俄语写的。开发者说,正在翻译成英文,然后会出现中文。 我确信,只翻译解释,没有人会去碰源代码。

许多程序员天生就给自己语言中的变量起了可以理解的名字,例如在这里我遇到了马西夫 (masiv)、科夫(Koef), 甚至是穆赫_IIIuPuHa_KaHaJIa。因此,在翻阅一本教科书时,我看到了以下代码。




一个唐人街的居民看着小费 变量有什么话要说 我们知道它是什么,但其他人知道什么?

( 在此找到:https://book.mql4.com/ru/trading/orderclose)
 
Parabellum:
问题如下。

这本书是用俄语写的。开发者说,正在翻译成英文,然后会出现中文。 我确信,只翻译解释,没有人会去碰源代码。

许多程序员天生就给自己语言中的变量起了可以理解的名字,例如在这里我遇到了马西夫 (masiv)、科夫(Koef), 甚至是穆赫_IIIuPuHa_KaHaJIa。因此,在翻阅一本教科书时,我看到了以下代码。




一个唐人街的居民看着小费 变量有什么话要说 我们知道它是什么,但其他人知道什么?

( 在此找到:https://book.mql4.com/ru/trading/orderclose)

谢谢你的评论!
当然,例子中的变量名称不会触及--以中文为例,源代码不使用象形文字,它们无论如何都要与拉丁字母打交道。为了理解这个变量的含义,"唐人街的居民 "将简单地看一下评论。另外,英语国家的居民也不会把Tip这个词理解为 "类型"。因为 "类型 "在英语中应该是type。而Tip是 "提示",甚至是 "暗示"。 但这并不妨碍他们理解讲俄语的开发者的代码。 ))
 

但我认为母语者还是应该看一下变量的名称。以免踩到耙子。如果变量Tip--它的声音与俄罗斯的三个字母单词相同,中间有字母U(.u.).如果不是这样呢?这在书中是不好看的。

它可能更简单、更正确。

int _OrdetType=OrderType()。

if ( _OrdetType > 1 ) ....

 

我们的假设是,读者仍然会思考一下...

 

这里https://book.mql4.com/ru/build/lots,有缺失的分界线

Lots_New=MathFloor(Free*Percent100One_Lot/Step)*Step;//计算。

我们需要

Lots_New=MathFloor(Free*Percent/100/One_Lot/Step)*Step;//计算


这有点尴尬,我想我可以看到代码。我想吃一片,但不是全部。也就是说,我把我看到的东西复制到缓冲区,然后粘贴到我的程序文本中。但它没有被正确插入。整个代码都归于一行。书中和MQL编辑器中的行末代码很可能不一致

 

这里是另一个小的编辑。

https://book.mql4.com/ru/build/trading

switch()控制被传递给case 10标签(块2-3)。


需要

....(第2块)。

 
Prival:

这里https://book.mql4.com/ru/build/lots,有缺失的分界线

Lots_New=MathFloor(Free*Percent100One_Lot/Step)*Step;//计算。

我们需要

Lots_New=MathFloor(Free*Percent/100/One_Lot/Step)*Step;//计算


这有点尴尬,我想我可以看到代码。我想吃一片,但不是全部。也就是说,我把我看到的东西复制到缓冲区,然后粘贴到我的程序文本中。但它没有被正确插入。整个代码都归于一行。书中和MQL编辑器中的行末代码很可能不一致


是的,是同样的格式化问题。我们明天会解决这个问题。

谢谢你发现这个错误。

所有完成的代码都有认证的文件。文件中的代码被认为是正确的。顺便说一下,它也可以作为一个参考来寻找错别字和不准确的地方。

 
Prival:

这里是另一个小的编辑。

https://book.mql4.com/ru/build/trading

switch()控制被传递给case 10标签(块2-3)。


需要

....(第2块)。



这里没有必要纠正。所有区块都有一个起点和一个终点。在这种情况下,2是开始,3是结束。

还是谢谢你:)

原因: