LabVIEW是一种简单易学、形象直观的图形化编程语言,也称为G语言,具有丰富的同传统仪器外观类似的控件库(如旋钮、仪表盘、温度计、波形图表等),可以构建漂亮专业的用户界面,同时,内部提供了庞大的函数库(如数据采集、GPIB、串口控制、数据处理、数据显示及数据存储等),可以满足各行业各领域的开发需求。另外,由于它并非一种封闭的语言,而是具有强大的外部接口能力,可以实现与C/C 、Basic、Matlab等编程语言互通的能力,现在,LabVIEW不仅仅局限于虚拟仪器软件类的开发,而是已经发展成为了一种通用的、完善的、开放的高级编程语言。

LabVIEW语言中四大基本程序框架结构包括顺序结构、选择结构、循环结构和事件结构,其中,循环结构是用的比较多的一种结构,而与之配套使用的移位寄存器更是LabVIEW中的编程难点之一,这次通过一个例子给大家讲解一下For循环和移位寄存器的综合编程方法,帮助大家理解这个知识点。

示例说明

这次的例子是求解水仙花数。

先解释一下什么是水仙花数,水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,严格的定义水仙花数,是指一个3位数,它的每个位上的数字的 3次幂之和等于它本身。如371 = 3^3 7^3 1^3,则371是一个水仙花数。

编程思路

根据水仙花数的定义,可以理出下面的编程思路:

  1. 主框架使用For循环,循环次数为900次,在循环框上放置一个移位寄存器,其初始值是一个空数组
  2. 在循环内对100-999之间的数字,每个数字分别验证其百位、十位及个位数字的3次幂之和是否等于其本身的值,若数字是一个水仙花数,则将其添加到移位寄存器的数组中,否则,保持上次移位寄存器的值
  3. 当900次循环完成后,移位寄存器数组中的值即为所有的水仙花数的值
关键点处理

根据上面的编程思路,可以理出实现过程中的两个关键点:

其返回参数中,x-y*floor(x/y)是余数部分,floor(x/y)是整数商部分。

2. 在For循环中如何保存获得的水仙花数?

在For循环中,使用移位寄存器存储所有的水仙花数组成的数组,其初始值为空数组,在For循环内若满足水仙花数的条件,则使用数组的插入函数,将该数插入到寄存器的数组中,否则,移位寄存器中的值保持原值。

这里使用的关键知识除移位寄存器外,还使用了“数组插入”函数,参数说明情况如下图所示:

labview列表如何修改数据类型(手把手以实例教你学For循环和移位寄存器编程)(1)

该函数的目的是在n维数组中索引指定的位置插入元素或子数组。

程序主代码实现

根据上面的分析,最终使用For循环及移位寄存器实现的代码如下图所示:

labview列表如何修改数据类型(手把手以实例教你学For循环和移位寄存器编程)(2)

运行后,“数组”控件中输出结果如下图所示:

labview列表如何修改数据类型(手把手以实例教你学For循环和移位寄存器编程)(3)

即所求得的所有水仙花数为153、370、371、407四处数值。

结论

从框图程序中看出,这个例子中涉及到的知识点除For循环结构和与移位寄存器初始化及使用外,还包括了选择结构、常用数组函数的使用及LabVIEW中如何求商与余数等。

大家加关注并私信回复:LabVIEW9,可获取该文章对应的LabVIEW原程序下载。

欢迎加关注,共同交流。

,