4.1 顺序结构

对于文本式的编程语言,程序执行的默认规则,是按照代码的排列顺序依次执行,所以,程序默认的状态就是顺序结构[7]。下面通过例4.1来理解文本式编程语言的顺序结构。

【例4.1】 求两个数的和与差。已知两个数ab,则两者之和为x=a+b,两者之差为y=ab。要求通过计算机编程实现和与差的计算。具体地,ab由键盘输入,输出和与差的值,即x=a+by=ab

对例4.1,利用C语言实现的代码如图4.1所示。计算机会按照程序语句的排列顺序一行一行地执行下去,这就是文本式语言的顺序结构。

而对例4.1,若利用LabVIEW来实现,其代码如图4.2所示。从图4.1与图4.2的对比可以看出,图形化编程语言LabVIEW与文本式语言(比如C语言)不同的地方有:①基于LabVIEW进行的编程,不需要定义变量;②基于LabVIEW编程的参数输入是在前面板上实施的;③LabVIEW具有天生的并行特点,比如,xy是并行计算出来的。而在图4.1所示的基于C语言完成的编程代码中,x先于y被计算。

在第2章,已经学习了LabVIEW作为一种图形化编程语言,其程序语句执行的规则是数据流机制。正是由于采用了数据流机制,利用LabVIEW编写的VI天生就具有并行的特点。这里通过例4.1,再次加深了对“天生并行”的理解。那么,在LabVIEW中如果要严格地控制程序运行的先后顺序,又该如何实现呢?一种解决思路,就是利用LabVIEW中的顺序结构来实现。

图4.1 例4.1的C语言实现代码

图4.2 例4.1的LabVIEW代码实现

在LabVIEW中,顺序结构有平铺式和层叠式两种形式。平铺式顺序结构如图4.3所示。选中平铺顺序结构的边框,右击,弹出快捷菜单,如图4.3(a)所示,选择“在后面添加帧”,新增加帧后的顺序结构如图4.3(b)所示。下面将通过例4.2学习顺序结构的使用。

图4.3 平铺式顺序结构

【例4.2】 计算一段程序的运行时间。

计算程序运行时间的VI,是一个要严格控制程序执行顺序的典型案例,可以利用顺序结构来实现,该VI的程序框图如图4.4所示。它共有3帧,在第0帧中,调用了“时间计数器”函数,输出当前时间;在第1帧中,可以调用要测试的VI,在本例中,调用了一个“时间延迟”函数来代替;在第2帧中,调用了“时间计数器”函数,输出当前时间,如此,由第2帧输出的时间减去第0帧输出的时间,就得到了第1帧中VI的运行时间。

如图4.4所示,平铺式顺序结构各帧之间的数据可以通过连线直接穿过帧壁进行传递。平铺式的顺序结构非常直观,就像是电影胶片,程序执行完第0帧里的代码,然后逐个执行第1帧、第2帧里的代码,从而严格控制了VI代码执行的先后。

平铺式的顺序结构,会让程序功能看起来一目了然。但是,当顺序结构的帧数过多时,用平铺式顺序结构会使VI看起来过大。针对于此,可以通过调用快捷菜单(如图4.3(a)所示)中的“替换为层叠式顺序”功能,将平铺式的顺序结构转换成层叠式的,以使得VI看起来更为紧凑。

图4.4 平铺式顺序结构各帧之间数据的传递

将图4.4所示程序框图上的平铺式顺序结构转换成层叠式顺序结构,效果如图4.5所示。层叠式顺序结构在空间上只占用顺序结构一帧的大小,可通过单击层叠式顺序结构中上方的选择器按钮,来查看其不同帧的程序代码。为理解起来方便,图4.5中,是将层叠式顺序结构的各个帧分别复制出来,然后显示在了同一平面上。

图4.5 层叠式顺序结构