求教!!!!!!!!!!(50分)

  • 主题发起人 主题发起人 HSCL
  • 开始时间 开始时间
H

HSCL

Unregistered / Unconfirmed
GUEST, unregistred user!
字符串 如:x*y+(z+1) (不固定的)
知道x、y、z的值,在程序里怎样计算按(x*y+(z+1))计算出结果?
不知道你们听不听的懂我的意思,
肯请赐教!!
 
1.自已编写一个解析程序
2。如果用到了数据库的话就好办了,
dataset.sql.text:='select'+string+'from tablename'
 
就是根据输入的公式,计算出结果!
 
使用堆栈表的push,pop,数据结构书里有讲具体算法,
很简单,只要设置字符优先级别就可以达到效果,
 
x :=1;
y :=2;
z :=3;
showmessage(inttostr(x*y+z+1));
我就不信它不得6。
 
程序里不能直接写x*y+z+1
这个是输入的。
 
编解析程序,设定运算优先级,数据结构书上可是讲得很清楚。
去看书吧
 
就是用转换函数啊!STR:=X*Y+(Z+1)
STRTOINT(STR);
 
x :=StrtoInt(Edit1.Text);
y :=StrtoInt(Edit2.Text);
z :=StrtoInt(Edit3.Text);
showmessage(inttostr(x*y+z+1));
 
x*y+z+1 是输入的公式!!!!!!
 
你可以看看清华大学出的那本数据结构书,那里定义了一个运算符优先表,但若真的编起来还挺麻烦的!
 
不懂你提问的核心,,
难道问的是,知道x,y,z的值,
当输入的公式不同,计算公式的值。
比如:
x=1;
y=2
z=3;
当输入公式为:x+y-z时,要结果为0?
公式为:x*y+(z+1)时,结果为6
 
to mnlisa
是这个意思。
 
做一个公式解析的程序,优先级别可以自己定了。
你可以先对优先级高的内容帛出来进行处理,然后再算平级的
这可是一种算法,动动脑就没问题
 
多人接受答案了。
 
后退
顶部