追踪任务(构建一个函数图)。 - 页 2 123456789 新评论 Igor Makanu 2011.01.22 21:41 #11 sergeev: 一个相同的函数可以从start 和init 中调用。这应该被修复。 我可以用手指来做,但你必须要想清楚 )) 像这样。 计算函数的数量,让它成为4,在代码头写上#define X 4 假设一个刻度的最大调用次数为 #define Y 100 我们有一个大小为4×100的矩阵,初始化矩阵=-1 现在,在调用一个函数的入口处,添加一个计数器(图形整形器)的调用,它应该在进入我们的矩阵的自由线上的所需位置X添加代码(1,2,3或4)--谁调用了 我认为你的问题更像是网络图,我怀疑网络图的矩阵早就被开发出来了--你需要谷歌一下 SZY: 好吧,这里已经是主题的第二页了;) Evgeniy Logunov 2011.01.22 21:46 #12 IgorM,你建议的存储图的方式被称为 "邻接矩阵"。对于稀疏图来说,这是很不经济的(程序员应该为 "全连接图 "的架构而挨打,等等)。 使用边缘列表要好得多(即我们存储由2个元素组成的一维数组结构--调用函数的 ID和被调用函数的ID;该结构可以补充额外的字段--调用计数器,等等)。 p.s.马塔仪器真的已经开发了很久了 :) Igor Makanu 2011.01.22 21:50 #13 lea: IgorM,你建议的存储图形的方式被称为 "邻接矩阵"。 谢谢,至少我已经开始记得一些东西了,自从我学习这些东西已经15年了,这些东西从来没有在现实生活中使用过))))。- 但不要忘了,"打包数据"(节省内存)--将导致性能损失,因为矩阵的复杂性增加,尽管我可能是错的。 Андрей 2011.01.22 21:50 #14 MetaDriver: 证明一个想法 的不可能性? 在C++中,记录函数的输入和输出是很容易做到的, ,有析构器和堆栈松动这样的东西。 虽然...对于同样的C++,有一些库可以让你通过堆栈建立代码中任何 点的函数调用 顺序。 。 所以......每一次返回都意味着更多的电话 :-)。 --- 2011.01.22 21:59 #15 lea: 树是图的一个特例。是的,这就是我的意思。基于MQL代码的线性--它将是一棵纯粹的树。由于节点不会相互指向。 IgorM: 有一个尺寸为4×100的矩阵,初始化矩阵=-1 现在,在调用函数的入口处,我们增加了对计数器(图形整形器)的调用,它应该在所需的位置X上增加一个代码(1,2,3或4),以进入我们的矩阵的自由行--谁调用的? 是的,我现在看到了。但在我看来,这种方法确实是劳动密集型的,不是在代码方面,而是在资源和分析的准备方面。对于分支,你将不得不做一个三维矩阵。 一般来说,该选项被接受。但现在我们先把它留在摘要的第4页吧 :) 我认为你的问题更像是网络图,我怀疑网络图的数学装置早已被开发出来,你需要谷歌 这项任务既不是一种技术,也不是一种新奇的东西。只是一个简单的函数图。仅此而已。 没有什么新的数学,我们只是需要一个尽可能简化的版本。 --- 2011.01.22 22:07 #16 lea: 使用边缘列表要好得多(即存储由2个元素组成的一维结构数组--调用函数的ID和被调用函数的ID;该结构可以补充额外的字段--调用计数器,等等)。 尤金, 这正是已经做过的事情。 但该代码已经停滞。第三天,我无法入睡,也无法喝酒.... 。:) 我不知道如何使从边(更确切地说是子孙节点)返回到父节点去新边(新子孙节点)。但 为了保持这个规则--我们在源代码函数的开头只使用一个追踪函数。 Alexey Subbotin 2011.01.22 22:11 #17 sergeev: 我不知道如何使一个肋骨的返回到一个节点上,以进入一个新的分支。 而这一切只用了一个已经向前传递的功能?这就够了--不做任何事情就能获得回报))。嗯,没什么,就是第二页结束了,很快弗拉基米尔 就受不了了))))。 --- 2011.01.22 22:15 #18 alsu: 而这一切只用了一个已经进行了向前传递的功能?这就够了--不劳而获,卷土重来))。嗯,没什么,就是第二页已经结束了,很快弗拉基米尔 就受不了了))))。 上帝与他们同在,与这些页面同在。这个任务很有意思。 你看,这就是你如何能....回滚到父节点可以在新调用的子节点中已经完成。也就是说,当你去找子孙时,系统会先下到树的低层,然后再上到新叫的子孙。 但在这个版本中,你不能做深度超过两个的分支。因为系统总是先回后进。也就是说,所有的功能都将被画在同一水平线上。 因此,人们认为我们将不得不使用一些变量数组,来识别当前的位置。 来继续前进,而不是返回。这正是这种回归的复杂性... Vladimir Gomonov 2011.01.22 22:29 #19 在预告片中的 "概念工件",更确切地说,是一个实施的例子。在MT 5上 In()和out()函数需要重写,使其与调用列表一起工作。现在,他们只是将输入和输出打印到标准线程。 坏消息是:我没有保存专题讨论者的一个追踪功能的梦想。对不起,谢尔盖耶夫。:) 好消息:一切正常。 用户手册。 1.宏"_in "被插在每个函数的开头。 2.所有的返回调用都被"_返回 "所取代。 3.在程序的开头写了两个定义 #define _in in(__FUNCTION__); #define _return out(__FUNCTION__); return 这就是全部。 附加的文件: rettest.mq5 2 kb Alexey Subbotin 2011.01.22 22:30 #20 sergeev: 这些页面是什么鬼东西。这是一项有趣的任务。 你看,这就是你如何能....回滚到父节点可以在新调用的子节点中已经完成。也就是说,当你切换到一个子代时,系统会先下到树的低层,然后再上到新的被调用的子代。 但在这个变体中,你不能做有两个以上深度的分支。因为系统总是先回后进。也就是说,所有的功能都将被画在同一水平线上。 这样看来,我们将不得不使用一些变量数组,来识别当前的位置。 继续前进,不返回。这正是这次回归的困难所在... 而这样一个奇怪的任务从何而来?如果你可以简单地做两个函数--输入和输出--而不费吹灰之力,这值得在可疑的研究上耗费精力吗? 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一个相同的函数可以从start 和init 中调用。这应该被修复。
我可以用手指来做,但你必须要想清楚 ))
像这样。
计算函数的数量,让它成为4,在代码头写上#define X 4
假设一个刻度的最大调用次数为 #define Y 100
我们有一个大小为4×100的矩阵,初始化矩阵=-1
现在,在调用一个函数的入口处,添加一个计数器(图形整形器)的调用,它应该在进入我们的矩阵的自由线上的所需位置X添加代码(1,2,3或4)--谁调用了
我认为你的问题更像是网络图,我怀疑网络图的矩阵早就被开发出来了--你需要谷歌一下
SZY: 好吧,这里已经是主题的第二页了;)
IgorM,你建议的存储图的方式被称为 "邻接矩阵"。对于稀疏图来说,这是很不经济的(程序员应该为 "全连接图 "的架构而挨打,等等)。
使用边缘列表要好得多(即我们存储由2个元素组成的一维数组结构--调用函数的 ID和被调用函数的ID;该结构可以补充额外的字段--调用计数器,等等)。
p.s.马塔仪器真的已经开发了很久了 :)
IgorM,你建议的存储图形的方式被称为 "邻接矩阵"。
证明一个想法 的不可能性?
,有析构器和堆栈松动这样的东西。
虽然...对于同样的C++,有一些库可以让你通过堆栈建立代码中任何
点的函数调用 顺序。
。
所以......每一次返回都意味着更多的电话 :-)。
树是图的一个特例。
是的,这就是我的意思。基于MQL代码的线性--它将是一棵纯粹的树。由于节点不会相互指向。
IgorM:
有一个尺寸为4×100的矩阵,初始化矩阵=-1
现在,在调用函数的入口处,我们增加了对计数器(图形整形器)的调用,它应该在所需的位置X上增加一个代码(1,2,3或4),以进入我们的矩阵的自由行--谁调用的?
是的,我现在看到了。但在我看来,这种方法确实是劳动密集型的,不是在代码方面,而是在资源和分析的准备方面。对于分支,你将不得不做一个三维矩阵。
一般来说,该选项被接受。但现在我们先把它留在摘要的第4页吧 :)
我认为你的问题更像是网络图,我怀疑网络图的数学装置早已被开发出来,你需要谷歌
这项任务既不是一种技术,也不是一种新奇的东西。只是一个简单的函数图。仅此而已。
没有什么新的数学,我们只是需要一个尽可能简化的版本。
使用边缘列表要好得多(即存储由2个元素组成的一维结构数组--调用函数的ID和被调用函数的ID;该结构可以补充额外的字段--调用计数器,等等)。
尤金, 这正是已经做过的事情。
但该代码已经停滞。第三天,我无法入睡,也无法喝酒.... 。:)
我不知道如何使从边(更确切地说是子孙节点)返回到父节点去新边(新子孙节点)。但 为了保持这个规则--我们在源代码函数的开头只使用一个追踪函数。
我不知道如何使一个肋骨的返回到一个节点上,以进入一个新的分支。
而这一切只用了一个已经进行了向前传递的功能?这就够了--不劳而获,卷土重来))。嗯,没什么,就是第二页已经结束了,很快弗拉基米尔 就受不了了))))。
上帝与他们同在,与这些页面同在。这个任务很有意思。
你看,这就是你如何能....回滚到父节点可以在新调用的子节点中已经完成。也就是说,当你去找子孙时,系统会先下到树的低层,然后再上到新叫的子孙。
但在这个版本中,你不能做深度超过两个的分支。因为系统总是先回后进。也就是说,所有的功能都将被画在同一水平线上。
因此,人们认为我们将不得不使用一些变量数组,来识别当前的位置。 来继续前进,而不是返回。这正是这种回归的复杂性...
在预告片中的 "概念工件",更确切地说,是一个实施的例子。在MT 5上
In()和out()函数需要重写,使其与调用列表一起工作。现在,他们只是将输入和输出打印到标准线程。
坏消息是:我没有保存专题讨论者的一个追踪功能的梦想。对不起,谢尔盖耶夫。:)
好消息:一切正常。
用户手册。
1.宏"_in "被插在每个函数的开头。
2.所有的返回调用都被"_返回 "所取代。
3.在程序的开头写了两个定义
#define _in in(__FUNCTION__);
#define _return out(__FUNCTION__); return
这就是全部。
这些页面是什么鬼东西。这是一项有趣的任务。
你看,这就是你如何能....回滚到父节点可以在新调用的子节点中已经完成。也就是说,当你切换到一个子代时,系统会先下到树的低层,然后再上到新的被调用的子代。
但在这个变体中,你不能做有两个以上深度的分支。因为系统总是先回后进。也就是说,所有的功能都将被画在同一水平线上。
这样看来,我们将不得不使用一些变量数组,来识别当前的位置。 继续前进,不返回。这正是这次回归的困难所在...