在LabView嵌套循环内的数组上构建/操作;没有返回预期结果

时间:2018-11-06 00:35:02

标签: labview

我正试图创建一个简单的VI,以找到最小数字,该数字是1-N的整数倍。我正在尝试实现的方法是一个while循环和一个嵌套的for循环。对于每个输入数字(我们称其为M),嵌套的for循环遍历数字1-N并测试M / 1,M / 2,...,M / N的余数是否为零。如果余数为零(即我的数字M可被该数字整除),则代码会将数字1添加到for循环中的数组。如果无法将其整除,则会将0添加到数组中。

然后,在for循环外,将所有数组元素相乘。如果乘积为0(表示数字1-N中的至少一个不是M的因数),则我的while循环继续到下一个输入数字M。但是,如果乘积不为零, while循环停止,指示器应显示数字M(它是数字1-N的倍数)。

我认为这是一个非常简单的想法,但是由于某种原因,我的代码无法正常工作。例如,我尝试输入M = 4(在divisible by numbers up to槽中指示),并期望在number槽中的输出6(因为它可以被1、2和3整除)。但是输出仅显示1。我在这里做错了什么?我已经附上了程序框图的图片,但不确定如何在此处上传实际的VI,但是如果有人提出要求,我也可以这样做。我是LabView的新手,所以感谢您的帮助。谢谢!

Block diagram

1 个答案:

答案 0 :(得分:0)

  

然后我的while循环继续到下一个输入数字M

当前情况并非如此。每次出现时,“ Number”都会显示1,因为没有代码可以将其更改为其他任何内容。我建议使用increment function

此外,在解决此类问题时,我希望为循环计数器提供一个指示器,以检查循环是否正在按预期的次数运行。

编辑:

尝试此代码段。它会在每个循环中增加您的输入,并更正“商数和余数”功能的输入(循环计数器的索引为零)。

enter image description here

编辑2:

最后,我仍然不确定您的方法是否能为您提供所需的结果。为了找到需要注意的部分,我建议使用Highlight Executionprobes(最简单的方法是右键单击导线并选择“探针”)。