netlogo中怎么调试,找错误,debug

netlogo中怎么调试,找错误,debug

ID:5279747

大小:679.79 KB

页数:10页

时间:2017-12-07

netlogo中怎么调试,找错误,debug_第1页
netlogo中怎么调试,找错误,debug_第2页
netlogo中怎么调试,找错误,debug_第3页
netlogo中怎么调试,找错误,debug_第4页
netlogo中怎么调试,找错误,debug_第5页
资源描述:

《netlogo中怎么调试,找错误,debug》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文档由netlogo爱好者编,如有不足,请见谅!很多用过别的编程语言的,都有很好的IDE(集成开发环:integrateddevelopmentenvironment),一般都有很强大的Debug功能,设置断点,查看变量值变化都是轻轻松松的事情。但是NetLogo调试设置断点这个功能都没有,包括最新发布的NetLogo6.0beta都没有这个功能(PS6.0beta版本功能未完善,下载需谨慎;其实看完这篇文章,你有可能会觉得没有这个功能是正常的)。下面就和大家分享一下我的Debug方法。先看个例子:界面如上所示,代码如下:模型大体意思:先通过setup生成10个

2、海龟,位置随意,海龟有个属性值value。然后在go里我们要求海龟每次前行一步(fd1)之前先右转左转一个随机数,然后使海龟的属性值value加上一个10以内的随机值(random10)现在我们要监控海龟value的变化监控变量方法一:使用show,print,write等原语把需要监控的变量输出到命令中心来看。我一般都用show,能输出自己想要的字符串。1.直接在go里面加showvalue运行一下,看看命令中心的结果:每一个海龟(注释:如第一个turtle6,指的是who为6的海龟,who是什么就自己查一下手册吧)对应的value值都输出了,是不是很开心呢?

3、2.假设我又给海龟增加一个属性,叫做income吧。在这里添加:然后我把income和value一起输出:来看看命令中心的结果(看结果前,先清除先前的输出数据,“清除”按钮在命令中心的右上角)这回惨了,输出都是数字,不知道value和income对应的是哪一个值了,怎么办呢?好忧伤……这个时候你就应该用word这个原语了。只要我们将show和word结合使用,输出的前面加个标志就可以了,像这样:输出的值前面都有个名称标志了:假如你想知道是哪一个ticks对应的输出呢?那不是轻轻松松的吗,在word里增加ticks一起输出就是啦!结果是不是就是你想要的呢?当然你为了

4、简便,也可以将这两句话合成一句话:结果要是你嫌弃输出太多,你又可以增加过滤条件来减少输出:比如只输出收入大于150的输出结果监控变量方法二:这种方法我不常用,因为记录不能输出,不能查看,会被实时更新掉,但是你一步一步运行的话还是可以的,那就是使用label原语。然后到界面上去看看效果:字体大小可以在设置里调整。监控变量方法三:使用自带的数据监视器监视who为1的value结果(你也可以考虑换个好看点的名字):知道了每个变量的值,你就可以自己去看看有没有错误了。总结(一):使用show输出灵活方便,想怎么输出怎么输出,我的世界我做主,还有记录可以查看对比,亦可以

5、增加判断过滤条件,选择性输出。要是label和监控器,只适合少量数据对比查看。上面讲的都是怎么监控变量,下面接着讲怎么解决提示的错误:提示错误麻烦的是找到错在哪里?解决方法就是先翻译提示的错误,清楚提示的是什么错误,知道了什么错误,你要给你提示,你都看不懂,那就白搭了。你就可以自己去查这个到底是怎么解决的。比如,还是那个例子我在go里增加了一句话,setcolorred。大家都知道color是海龟或者链特有的属性(查看手册,对应的符号标志,就可以清楚的知道原语是属于什么类型的)而go整个执行主体我设置的是observer,然后他就提示我:“Youcan’tuset

6、ickinaturtle/linkcontext,becausetickisobserver-only”。细心的人会注意到,我tick是早就加上去的,新加上去的一句话是setcolorred。那为什么会提示是tick出错呢?这个问题很简单,程序在go编译的时候,他检查到setcolorred的时候,由于编译还没有完成,根据上下文语境,就认为是turtlecontext了,然后又遇到tick这个只能在observer环境用的原语,所以就报错了。解决这种错误的方法就是排除法,排除明显正确的,找到错误。明确的知道自己添加了哪一句代码造成错误。比如例子中明显是新增了set

7、colorred造成的错误,而不是tick。那我们把setcolorred放到askturtles里面就可以啦!刚开始学的时候,我就是这样一句话一句话先找到运行对的,然后一句话一句话慢慢添加,就知道知道错在哪里了(但是有时候复杂的情况这个方法有可能不适用,可以说90%的情况下都可以用这种方法)。对于有的人,解决错误真的是很困难的问题,所以我也有意收集了各种常见的提示错误放到我的论坛里,相关帖子:http://www.netlogo.club/topic/5733e1509e3f2a2a018ae818,也欢迎大家发帖或者给我反馈各种错误,我会及时的更新,现在收集的

8、错误都是来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。