C _ccc Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-01 #1 一个较难的表达式问题? 已知表达式:(x>a+b*15) and (x<c*20-d) 给变量赋值:a:=10,b:=2,c:=3,d:=10 求满足条件的X值的区间
L liuchengr Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-01 #2 a+b*15 < x < c*20-d 只要计算出两边的值,如果左边<右边,则区间=(左边,右边),否则为空 怎么计算两边的值用全文检索一下就有了
C _ccc Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-01 #3 关键问题是如何解析出左边和右边的表达式,有几千个这样的表达式,不可能改为只用用程序解析出来
W WoDing Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-01 #4 //已知表达式:(x>a+b*15) and (x<c*20-d) //给变量赋值:a:=10,b:=2,c:=3,d:=10 可以用SQL来解析的 先将a+b*15与c*20-d中的ABCD换成字串,s1:='10+2*15',s2:='3*20-10' 再用adoquery.sql.text:=' select ' +s1+','+s2 再从adoquery中读出就可以了
//已知表达式:(x>a+b*15) and (x<c*20-d) //给变量赋值:a:=10,b:=2,c:=3,d:=10 可以用SQL来解析的 先将a+b*15与c*20-d中的ABCD换成字串,s1:='10+2*15',s2:='3*20-10' 再用adoquery.sql.text:=' select ' +s1+','+s2 再从adoquery中读出就可以了
L LeeChange Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-02 #5 说到底还是表达式求值呀,只要分别求出上下限不就行了。 至于表达式求值的方法,有一些专门探讨的帖子的。
黄 黄钥匙 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-04 #6 不知道高手有啥高招,我有一土方: 这个问题应该不难在如何表达式求值,而应该先在字符串中,一个字符字符的读各判断,解析出“>”和“<”等符号的位置和两边的表达式,再求值上下限就不难了,表达式可用ADOQuery或相关控件即可。
不知道高手有啥高招,我有一土方: 这个问题应该不难在如何表达式求值,而应该先在字符串中,一个字符字符的读各判断,解析出“>”和“<”等符号的位置和两边的表达式,再求值上下限就不难了,表达式可用ADOQuery或相关控件即可。