wangchao685 发表于 2010-7-20 10:33:37

程序编辑

   想实现以下的功能:一个输入量x,根据x的范围进入不同的程序计算,x范围为 50<x<100,进行x+600计算得结果Y,x>100,进行600+0.1t的计算也得结果Y.现在的问题是在x>100的情况下,Y已经有一个结果800,想在Y=800的基础上再判断X的范围进行不同的计算,以后也是重复的判断X的值,如何实现这样的程序?

飞雨天 发表于 2010-7-20 11:00:13

"以后也是重复的判断X的值"啥意思,是光x判断还是按前面的x判断之后y判断?
不管如何,用状态机很不错。。。。
最好你传一个流程图上来,示意下

wangchao685 发表于 2010-7-20 11:47:27


Yn值是个刷新值,就是Yn=Yn-1+(25或者0.1t)

tester 发表于 2010-7-20 12:17:44

用公式更简单。像C一样。否则太多CASE判断麻烦

wangchao685 发表于 2010-7-20 14:08:20

回复 tester 的帖子


    我对C不了解,高手能帮忙给编一个嘛,万分感谢

zebra 发表于 2010-7-21 09:59:53

回复 wangchao685 的帖子


    每太看明白,你的编程目的,第二次比较的时候,是由y作为输入量,而下面的比较量却是X,希望你能说的更明确些,我觉得你可以通过case structure 来实现你的想达到的目的

wangchao685 发表于 2010-7-21 10:25:04


我就是要实现程序中的功能,但是现在我输入X值,Y值没有变化

wangchao685 发表于 2010-7-21 10:27:14

回复 zebra 的帖子


   
我就是要实现程序中的功能,现在的问题是输入X值,Y值没变化,Y值初始值设为600

wangchao685 发表于 2010-7-22 08:30:34

回复 zebra 的帖子


    就是想实现Yn=Yn-1+(25或者0.1t)这个公式,前提条件是t的范围,50<t<100时,用加25的公式,>100时用加0.1t的公式

wanshiwch 发表于 2010-7-22 09:16:30

你的While一直在循环,只有While停止的时候才会把循环里的值传给循环外。

zebra 发表于 2010-7-22 09:41:28

回复 wangchao685 的帖子


   不好意思,打不开你的VI我的版本8.2的低于你的。你可以看看labview for everyone 那本书的第六章,也许可以给你灵感。

飞雨天 发表于 2010-7-22 10:21:52

7楼的程序有个很大的错误,0.1t是一个波形,而且这个波形有很多个点,是没办法和double进行转化的(逻辑上),至于它没报错,是因为如果波形只有一个点,还是可以转化的(可惜你的程序是1000个点)。
然后我很抱歉,让这么简单的问题叠了这么高的楼。
几个问题:
1、在y值的不断计算中,x值要不要变化?
2、就y来说,它是不断计算整数序列n处的值,这个是离散的,而你要加0.1t,这个是连续的,是不是有概念没搞清楚?应该是0.1n吧?
最后,如果不考虑x值,y是不是这样一个公式:
页: [1]
查看完整版本: 程序编辑