




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、循环结构1、While循环2、For循环二、分支结构三、顺序结构四、公式节点五、事件结构六、变量七、定时循环八、菜单,第三章程序结构,一、循环结构,1、While循环2、For循环,While循环示意图,While循环创建,创建方法:选中单击左键拖动释放左键,While循环结构,While循环结构说明,1、重复端子:用于记录和输出已执行的循环的次数,2、条件端子:循环是否终止的条件端子。i的初始值为零。输入的是一个布尔变量:真或假,While循环将一直执行到连接条件端子上的布尔值变成真或假为止,取决于条件端子设置为“真(T)时停止”还是“真(T)时继续”。,3、在条件端子上单击右键即可进行更改。如图:4、While循环是一种框图上的容器对象,即其内部可循环嵌套。,While循环框图内添加代码,有两种方法:1、结构创建好后添加代码;2、在已有程序代码的基础上添加结构。,While循环运行流程,While循环可以反复执行循环体的程序,直至到达某个边界条件。它类似于普通编程语言中的Do循环。While循环的框图是一个大小可变的方框,用于执行框中的程序,直到条件端子接收到的布尔值为FALSE。该循环有如下特点:(1)计数从0开始(i=0)。(2)先执行循环体代码,而后i+1,如果循环只执行一次,那么循环输出值i=0。(3)根据条件端子进行判断是否继续循环。(4)While循环中的代码至少要运行一次。,While循环运行流程,While循环运行流程类似于如下的文本语言的伪代码:DO执行子框图While条件判断的结果为继续循环,例:利用While循环产生随机数,当产生的随机数大于0.8时,循环停止。步骤如下:1.打开前面板,新建两个数值显示控件,一个为循环次数,一个显示最后产生的那个大于0.8的随机数。如图:,2切换到程序框图,放置一个While循环,如左图:3.放置随机数函数到While循环内,并连线,如右图:,4.放置比较函数,将循环次数与重复端子连线,如左图:5运行,即可在前面板上看到结果,如右图:,在程序框图中,在数值显示控件上单击右键,可更改数值的类型,如图:,注意:While循环的条件端子一定要有连线,否则程序无法运行!如图:,作业:练习31,2、For循环,For循环用于将某段程序执行指定次数。和While循环一样,它不会立刻出现在流程图中,而是出现一个小的图标,而后您可以修改它的大小和位置。具体的方法是,先单击所有端子的左上方,然后按下鼠标,拖曳出一个包含所有端子的矩形。释放鼠标时就创建了一个指定大小和位置的For循环。,2、For循环,For循环位于函数编程结构For循环,如前图:从图中可以看到,For循环将把它的框图中的程序执行指定的次数,For循环具有下面这两个端子:N:计数端子(输入端子)用于指定循环执行的次数。I:重复端子(输出端子)含有循环已经执行的次数。上图显示了一可以产生100个随机数并将数据显示在一个图表上的For循环。在该例中,i的初值是0,终值是99。,For循环举例:产生10个随机数,并把最后一个显示出来。步骤如下:1放置一个数值显示控件到前面板,并改名为随机数。2放置For循环到程序框图,如图:,3放置随机数函数到程序框图,并连线。4计数端子上单击右键,选择创建常量,并输入10,如图:,5运行程序,便可在前面板上看到结果。6因为程序的运行的速度非常快,我们无法一个一个地看清所产生的10个随机数,我们可以在程序框图中添加时间延迟控件。它位于函数编程定时时间延迟,如图:,7放置它到程序框图上,选择延迟的时间,即两次循环之间的时间间隔。如图:8将时间设置为1.000,点击确定即可,再运行程序就可从前面板上看到所产生的随机数了。,练习3-2使用For循环,循环结构内外数据交换采用:隧道建立隧道方法。自动索引,针对数组而言。,3、移位寄存器,移位寄存器用于For循环或While循环中从一个迭代传输数据到下一个迭代,它由循环垂直边框上一对反向相反的端子组成。添加方法:在边框上单击右键,选择添加移位寄存器,就可进行添加。如图:,右端子(带向上箭头的矩形)在每完成一次迭代后存储数据,移位寄存器将上次迭代的存储数据在下一次迭代开始时移动到左端子(具有向下箭头的矩形)上。,移位寄存器可存储任何数据类型,包括数字,布尔,字符串和数组,但连接到同一个寄存器端子上的数据必须是同一类型。移位寄存器的类型与第一个连接到其端子之一的对象数据类型相同。,下面是1234100的程序,如图:,说明:进行第一次运算的是0+0,For循环中的重复端子是从0开始计数,移位即寄存器在没有初始化的情况下,默认的数值是0,所以第一次运算的是0+0,第二次运算的是寄存器的0与重复端子的1相加,所以循环要进行101次。而计数端子输出的数据始终是101。,移位寄存器的初始化,移位寄存器的初始化是非常必要的,因为只要用户不退出VI,移位寄存器便可记录上次运算完时的结果,所以上面的程序在第二次执行时输出的结果不是5050,而是10100!添加初始化即可,如图:,例:计算12!3!4!+n!,在前面板上放置一个数值输入控件“阶次n”和一个数值显示控件“求和结果”在程序框图上放置两个For循环嵌套结构,外层循环的计数端口与“阶次n”连接,输出是各个数的阶乘所组成的一个数组。它的重复端子加1作为内层循环的循环次数,内层循环利用一个移位寄存器实现阶乘运算,移位寄存器的初始值设为1。同样在程序框图的右边在放置一个For循环结构,它的计数端子没有任何连接数据,使用的是自动索引功能。这个循环的作用是对由阶乘所组成的一个数组进行索引,对索引出的各个元素进行求和计算,最后将计算结果输出给“求和结果”。,完成连线,如右图:,运行结果,如右图:,4、反馈节点,反馈节点和只有一个左端子的移位寄存器的功能相同,同样用于在两次循环之间传递数据。它是一种更简洁的表达方法。(P66),二、分支结构:Case,Case结构含有两个或者更多的子程序(Case),执行哪一个取决于与选择端子或者选择对象的外部接口相连接的某个整数、布尔数、字符串或者标识的值。必须选择一个默认的Case以处理超出范围的数值,或者直接列出所有可能的输入数值。Case结构见下图,各个子程序占有各自的流程框,在其上沿有相应的子程序标识:Ture、False或、。按钮用来改变当前显示的子程序(各子程序是重叠放在屏幕同一位置上的)。,1、分支结构的组成,条件端子相当于C语言的switch后面的变量,每个分支按钮标签相当于case后的常量表达式。,Case结构举例,目的:创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。1.打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对象用于显示该数值的平方根。照下图创建流程图。,3.从FunctionsStructures中选择一个Case结构,并放置在在流程图中。Case结构是一个可以改变大小的方框。先来做Ture的情况,照流程图上半部分构造。(1)GreaterOrEqualTo0?函数(FunctionsComparison)如果输入数值大于或者等于0就会返回一个TRUE值。(2)SquareRoot函数(FunctionsNumeric)返回输入数值的平方根。(3)连好线(4)点击Case框的选择按钮,转入False情况编程(5)数值常数(FunctionsNumeric)这里用于显示错误的代数值-999.00。(6)OneButtonDialog函数(FunctionsTime)结尾。,下面这个例子显示了如何在一个公式节点中执行不同条件时的数据发送。请阅读下面这段程序代码,如果X为正数,它将算出X的平方根并把该值赋给Y,如果X为负数,程序就给Y赋值-99。if(x=0)theny=sqrt(x)elsey=-99endif可以用公式节点取代上面这段代码,如右图所示:注意:公式节点中变量字母X,Y大、小写是有区别的,开方的函数sqrt(X)中函数名称是小写。公式节点中的函数和操作符与C语言中的基本相符,遇到特殊函数时查表即可。,例题:创建一个VI,它用公式节点计算下列等式:y1=x3x2+5y2=m*x+bx的范围是从0到10。可以对这两个公式使用同一个公式节点,并在同一个图表中显示结果。前面板:,打开一个新的前面板,按照上图(该图中包含运行结果)创建前面板中的对象。波形图显示对象用于显示等式的图形。该VI使用两个数字式控制对象来输入m和b的值。,按照下图创建流程图。在创建某个输入或者输出端子时,必须给它指定一个变量名。这个变量名必须与公式节点中使用的变量名完全相符。公式节点中,在边框上单击鼠标右键,在快捷菜单中选择AddInput,可以创建三个输入端子。在快捷菜单中选择AddOutput,创建输出端子。x的范围是从0到10(包括10),就必须连接11到计数端子。BuildArray(FunctionsArray)在这个例子中,它用于将两个数据构成数组形式提供给一个多曲线的图形中。通过用变形工具拖拉边角就可以创建两个输入端子。返回前面板,尝试给m和b赋以不同的值再执行该VI。,全局变量和局部变量,1、全局变量和局部变量是LabVIEW用来传递数据的工具。2、用户也许会经常碰到这样一种情况,既能够对程序中一个控件对象写入数据,又要能够读出它的数据,这在数据流编程中是无法实现的,这也需要用到局部变量或者全局变量3、局部变量:用于一个程序太复杂的话,有时连线会很困难甚至无法连接;一个VI的多个位置实现对前面板控件的访问。4、全局变量:主要是针对不同VI程序之间的通信。,局部变量,建立局部变量的方法有两种:1、一种是在程序框图中直接添加,如左图;2、另一种方法是右击控件对象,在弹出的快捷菜单中执行“创建/局部变量”如右图。,全局变量,全局变量与局部变量不同,它是在不同的程序之间进行通信。LabVIEW的全局变量是一个独立的VI,它是一种特殊的程序,没有程序框图只有前面板,功能是保存一个或多个全局变量,所以也把全局变量程序称为“容器”。建立全局变量:它的建立和局部变量类似,将全局变量拖拽到程序框图中,在它的快捷菜单中执行“打开前面板”,或双击全局变量图标,打开全局变量程序前面板,然后在前面板中添加所需要的全局变量控件,如图,添加了3个全局变量,并保存VI。,在打开的对话框窗体中为程序选择想要放置的全局变量。如果最先放置的不是想要的全局变量,可以像对局部变量那样操作,在快捷菜单上选取“选择项”子选项,在列出的所有变量对象中进行选择,或者用操作工具来选择。使用全局变量时必须特别小心,因为它对所有的LabVIEW程序都是通用的,稍有不慎就可能互相干扰,用户必须清楚的知道全局变量的读写位置。用户编辑时既可以向全局变量输入数据,也可以从它读取数据,这一点与局部变量是完全相同的。全局变量的应用较少,这里就不再举例,建立了全局变量以后就可以在其他程序里面调用它,方法是在程序框图上选中“选择VI.”,如图:,使用全局变量和局部变量的注意事项:,LabVIEW语言编程是一种数据流,全局变量和局部变量提供了一种违反严格数据流的程序设计方式。大家有必要了解竞态条件的缺陷,当两个或两个以上的事件可以按任何顺序发生时就产生了竞态条件。用户要想知道在多个并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 康宁会计面试题目及答案
- 2025年公卫执业医师考点:带状疱疹试题及答案
- 2025年初级电工证考试试题及答案
- 2025动画视听语言试题及答案
- 2025年医疗护理技术操作规程和规范
- 2025年分级护理管理制度试题(附答案)
- 2025年血液科护士三基实践指南测试题(附答案)
- 2025年临床执业医师考试试题含答案
- 2025年11月份护士及护师业务学习理论考试试卷及答案
- (新版)中级安全工程师《安全生产专业实务》(化工安全)考试历年真题及答案
- 医院综合门诊部综合管理体系建设
- 2025年中医师承出师考试题库
- uom无人机考试题库及答案2025
- 预防接种基础知识课件
- 护栏生产及安装方案(3篇)
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 医德医风建设培训课件
- 通信工程竣工资料模板(通用版)
- 中国半导体行业投资深度分析与展望
- 应急中心组织架构
- 教练技术探索课程一阶段导师讲义
评论
0/150
提交评论