一、题目
已知组合数
请根据这一计算规则,封装设计子程序,实现的计算,并编写测试程序验证子VI设计的正确性。
二、过程
设置数值输入控件的“属性”-“数据输入”-“最小值”为1,当输入值为0时强制转换为1。在程序框图界面放置for循环结构,将数值输入控件和循环总数N连接,用来设置循环次数。通过“+1”使循环计数从“1”开始,添加移位寄存器用来保存上一次的循环取值,并将左侧移位寄存器初始化为“1”(因为循环刚开始时,并没有上一次的取值,且如果初始化为0,则无法实现乘),通过调用“乘”函数,将左侧移位寄存器保存的上一次计算结果与当前循环数值相乘,从而实现阶乘,最终通过将右侧寄存器连接数值显示控件输出计算结果,即可实现阶乘。阶乘子VI设计如下图所示:
通过组合数C(n,m)=n!/(m!*(n-m)!),来测试验证子VI是否设计正确,根据组合数表达式,设计程序并验证如下图所示:
经过测试验证,满足要求。