大家好,我是讯享网,大家多多关注。
举例:我们先来看看什么是质数:质数,也叫素数,是指大于1的自然数。除了1和它本身,它不能被其他自然数整除。符合这个规律的数叫做质数。
素数有无限个,那么如何在LabVIEW中编程求解1000以内的所有素数?
编程思路
要求解1000以内的所有素数,这个问题可以分解为以下两个问题:
如何判断一个数是否为素数查找1000以内的所有符合条件的素数
对于第一个问题,基本的判断思路很简单:对于一个大于1的正整数X,如果根号下2和X之间的所有整数都不可整除,那么这样的X可以判断为素数。
第二题,遍历1000以内所有大于1的自然数,逐一判断是否为质数。如果有,就把它们数出来,否则,就忽略它们。
下面我们来看看如何用LabVIEW编程解决这两个问题。
如何判断一个数是否为素数
在LabVIEW中编写一个名为“isPrimeNumber.vi”的子程序。子例程输入一个整数“x”并输出一个布尔值“它是一个质数吗?”,如果x是素数,布尔值为真,否则为假。其框图程序的实现代码如下:
在上面的代码中,使用了for循环,循环次数为(根数下的x)-1,其中,x的根数开后,向下取整,强制转换为32位整数类型。在for循环中,从2开始,用“商和余数”函数将x一个一个地除。六”。如果余数为0,跳出for循环,即for循环结束。循环结束后,向循环外部输出余数是否为0的判断值。如果是0,说明这个数不是质数,所以反过来作为整个子程序的输出来表示当前数是否是质数。
注意,在LabVIEW的for循环中,可以提前结束循环,相当于C语言中的break语句。方法是选中for循环框,点击右键,在弹出的右键菜单中选择“条件终止”,会出现上图所示的条件终止符号。这样,当根号下2和x之间的所有整数都用来除x时,只要有可除的情况(余数为0),就说明x不是素数。这时候可以跳出end for循环,没必要一直循环。
查找1000以内的所有符合条件的素数
写一个主程序调用上面的子程序“isPrimeNumber.vi”找出1000以内所有合格的素数。其框图程序的实现代码如下:
根据素数的定义,用for循环求2-1000以内的所有素数,循环次数为999。在for循环中增加一个移位寄存器来存储所有的素数,它的初始值是一个空数组。在循环内,逐个判断是否是质数。如果是质数,使用“数组插入”。vi”函数将其添加到移位寄存器的数组中。否则,移位寄存器中的值将保持最后一个值。
循环结束后,移位寄存器数组中的值都是1000以内的质数。为了方便查看结果,在本例中,使用“数组到电子表格字符串转换”将数组的所有元素转换为字符串。vi”功能并显示在前面板上。显示结果如下。从图中可以看出,1000以内的质数都已经通过这个程序完全算出来了。
总结
通过这个例子可以学到的知识点包括:
for循环+break+移位寄存器的用法子程序的编程方法数组插入及至电子表格字符串的转换方法。
如果你觉得这篇文章对你有用,摇摇你的手,赞一下。
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/41237.html