簇
簇是一种相似数组的数据结构,用于分组数据。簇和数组有着重要的不同,其间一个重要不同是,簇能够包含不同的数据类型,而数组仅能够包含相同的数据类型。例如,一个数组能够包含10个数字指示器,一个簇却能够包含一个数字控件,一个开关和一个字符串控件。
虽然簇和数组的元素都是有序寄存的,但拜访簇的元素最好是经过开释的办法一起拜访其间部分或悉数元素,而不是经过索引一次拜访一个元素。簇和数组的另一个不同是簇具有固定的巨细。
簇一般用于将呈现在框图上的有关数据元素分组办理。由于簇在框图中仅用仅有的连线表明,所以关于削减连线紊乱和子VI需求的衔接器端子个数,运用簇有着活跃的作用。能够将簇看做是一捆连线,线缆中每一个连线表明簇的不同元素。在框图上,只要当簇具有相同类型,相同元素数量和相同元素次序时,才能够将簇的子端衔接。多态性使用于簇时,只需求簇具有相同次序,相同数量的元素。
下面来向我们介绍簇的创立簇的创立框坐落前面板中的控件→新式→数组,矩阵和簇→簇,如图:
然后就能够往簇的框中增加各种类型的控件了,例如现在要树立一个学生的记载信息,包含学生的名字,学号,性别和年纪.这就需求在簇外壳里顺次放入两个字符串输入控件,一个数字控件和一个布尔控件.如图:
与数组的创立相似,簇也能够从程序框图中创立,先在程序框图上放置一个簇外壳,然后就能够在簇外壳里放置各种数据类型常数。如图:
簇内目标的巨细是能够调整的,右击簇鸿沟,在弹出的方便菜单中能够挑选各种调理操作,如图:
挑选调整为匹配巨细,即可缩小簇的边框,如图为调整后的成果:
簇结构中的元素摆放是依照它们放置的先后来排序的,它与簇内元素的方位无关。放入簇内的第一个元素序号为0,第二个元素序号是1,顺次向下摆放。假如删除了一个元素,序号将从头主动调整。簇的排序很重要,它直接影响着后边即将介绍的“绑缚”以及“触摸绑缚”函数的端口次序,假如你想将一个簇与另一个簇衔接,这两个簇的序和类型有必要相同。
假如想要改动簇内元素的摆放次序,能够右击簇结构的边框,在弹出的方便菜单中履行“从头排序簇中控件”,如图:
这时鼠标会变成一个带“#”号的手柄箭头,黑框指出新设置的摆放序号,白框表明原先的摆放序号,能够改动标题栏上的“单击设置”内容,然后单击簇元素即可设置新的序号。设置结束后单击东西栏上的“”按钮确认更改,假如想康复原先设定值,单击“”撤销设置。
b) 簇函数
簇函数的模版如图:
簇函数中最首要的便是结构打包生成簇的“绑缚”函数,还有从簇中解包提取簇中元素的“免除绑缚”函数。它们是依据簇成员的次序来进行操作的,这也阐明晰簇内成员次序摆放的重要性。
簇函数举例:
- 创立簇,解包簇,再打包簇
该例的意图是学习运用簇的两个根本函数,如图:首要放置一个簇外壳到前面板上,将标签内容改为“输入簇”
在簇外壳中顺次放入字符串控件“Name”,布尔控件“Sex”,数字输入控件“Pay”以及字符串控件“Address”,经过这些簇元从来组成某一公司内一名职工的薪酬记载。如图:
切换到程序框图,放置一个“免除绑缚”解包簇函数,函数刚放入时,它的右侧只要2个输出端口,当输入端口与“输入簇”端子相连后,右侧端口会主动增加为簇元素的数目,端口从上向下摆放的次序与簇内元素的放置次序相对应,而且数据类型也是与簇元素数据类型相对应。如图:
相同放置一个“绑缚”打包簇函数,用定位东西将输入端口的数目增加到4个,顺次将它们与解包出来的4个簇元素相连,表明又把它们进行打包生成一个新的簇。在输出端口创立一个簇显现器,把标签改为“输出簇”,如图:
- 替换簇成员
该例的意图是学习运用“按称号绑缚”函数来替换簇内的某些元素。
- 新建一个VI,在前面板上创立一个簇外壳,顺次向簇内增加一个数字输入控件,一个布尔控件,一个字符串输入控件,如图:
- 翻开程序框图,挑选“按称号绑缚”函数,它的功用是依照称号来替换簇成员的值。在函数刚放入时,它的左边只要一个输入端口,将函数的“输入簇”端口与创立的簇端子相连之后,左边端口会显现簇内第一个元素的称号数值,用操作东西单击它能够挑选其他的簇成员。如图:
- 在前面板上创立一个输入控件,将标签改为“输入数字”,在程序框图将它与“数值”端口相连,表明将用它来替换簇元素。如图:
- 在“按称号绑缚”函数后边创立输出簇,完成后即可运转程序,如图:
- 插接生成簇数组
该例的意图是学习运用“索引与绑缚簇数组”函数插接簇数组函数来生成一个簇数组。
- 新建一个VI,翻开程序框图,放置一个该函数,刚放入时它只要一个输入的端口,用定位东西迁延它为3个输入端口。
- 在程序框图上放置三个数组外壳,然后别离增加字符串常量,数值常量和布尔常量,树立三个数组,如图:
然后给他们赋如图所示的值,如图:
然后连线,并创立显现控件,如图:
运转,成果如图:
阐明:该函数从输入的3个数组中顺次取值,相同索引值的数据被攒程一个簇,一切的簇构成一个一维数组。插接成的数组的长度与一切输入数组中长度最短的一个持平,剩余的数据被丢掉。
- 树立“数组的数组”
该例看起来好像是不能够完成的,由于在数组的学习中,现已知道数组的成员不能够是数组。这儿将学习把一维数组当成一个簇,然后经过树立簇的数组,由于簇数组的每一个成员都是一个簇(即一维数组),然后完成树立“数组的数组”的意图。
- 先新建一个VI,翻开程序框图,放置一个“创立簇数组”函数,该函数的功用是树立簇的数组,簇数组的每个成员都是一个簇。刚放入程序框图时,函数只要一个输入端口,用定位东西拖动它的边框,使它具有3个输入端口。
- 在程序框图上创立3个数值型数组,别离对它们进行赋值,第一个和第三个数组长度设定为5,第二个数组的长度设定为4。在“创立簇数组”函数的输出端口创立一个簇显现器,将簇显现器的标签内容改为“数组的数组”,如图:
- 运转程序,即可在前面板上看到成果,如图:
Error簇
Error簇是一类很重要的簇,许多的控件里都有“过错输入”和“过错输出”这两个簇的端口,一般来讲,当一个VI中心呈现过错而导致不能运转时,能够在犯错的控件的“过错输出”端子创立一个显现控件,则能够让程序持续运转,如图所示,即为Error簇:
而Error簇更重要的使用在于,它能够操控控件履行的先后次序,也能够经过Error簇来操控循环的中止。如图:
当信号的产生呈现过错的时分,就能够把循环中止。