- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
具体到图2.3所示的程序,进入循环体时max移位寄存器初始化为-∞,而min初始化为+∞。第一次循环时数组元素3读入,分别与max、min的值比较,结果是max、min被置为3;第二次循环时max、min的值都已经变成了3,这一次循环读入2,比较后min的结果置为了2……。以此类推,直至循环结束。
图2.4功能与图2.3完全一样,注意,为什么For 图2.5 程序前面板
循环左上角的循环次数N并没有赋值?因为数组进入循环体是使用了自索引(如果你连接数组和For循环体,默认就是自索引),For循环回自动从头到尾依次获取每一个元素的值,对我们编程节省不少力气。另外程序用选择函数代替条件结构,这个函数能够用于大多数双值选择的情况,但必须是相同类型(如从两个整型、两个字符串……中根据真假选择),上方输入提供逻辑真时的输出,下方输入则提供逻辑假时的输出,中间则是判别逻辑(真或假)。
肯定有学过LabVIEW的小盆友会说,数组最大值、最小值有专门的VI可以调用,不用这么麻烦。没错,数组函数里数组最大值与最小值函数能够直接完成此功能,并且给出最大值、最小值出现的位置。我们举例是为了学习,并且你也可以继续完善我们的例子实现更多的功能。
如果我们在程序运行前无法知道循环次数怎么办?或者需要中途可以中断跳出的循环时?当然是While循环了。
2.1.2 While循环
While循环特征也很明显,除了内部的当前循环次数i同For循环相同外,由于通常用于无法预知循环次数的循环,所以内部的是用来连接跳出循环的条件:输入为真时结束循环。如果你在上点右键,可以选择输入为真时继续循环(即输入为假时结束循环),图标变为。
好的,我们先来实现一个简单的While循环:求0+1+2+…+n的值,置于n是多少,我们就让它随机吧,直到我们点击退出按钮时再停止。最终需要显示n的值和求和的值。程序框图和前面板如图2.6所示。
图2.6 While循环实例
使用While循环有几个问题需要注意:
计数i从0开始,While循环至少会运行一次。而For循环如果循环次数N设为0(或空数组自索引),则一次也不会循环。
合理循环终止方式。如果是通过内部条件触发(如循环3000次后自动停止等),则要注意算法不要有问题;如果是通过点击按钮退出,那要注意按钮的机械动作(后面会讲)和循环条件类型。
While循环里面尽量不要出现While循环的嵌套。While循环里面还有While循环很容易导致死循环,而且几乎所有的问题都有不适用嵌套的解决方法。
While循环内要根据情况设置延时。许多While循环是需要一直运行来进行事件处理,如果不加延时会全速循环,耗费大量系统资源。而许多情况下,几十甚至几百个毫秒的延时不会对程序的功能和人机交互带来任何问题。
许多东西需要在实践中总结和改进,并且经验也不是适用于一切场合的。
那么我们再来实现一个While循环的例子:使用While循环绘制图表,我们用到While循环、随机数发生函数、波形图表(chart)、延时函数,如图2.7。
图2.7 While循环波形仿真
通过调整延时的毫秒倍数,你能很轻松的控制循环的速度。但注意的是,这种定时方式不是一种精确的方法,不能用于非常精密的需求中。
第二章 强筋健骨:由程序流程的控制展开
LabVIEW实践之路
20
19
文档评论(0)