简单问题:如果转换算式并求结果(100分)

X

xinjia

Unregistered / Unconfirmed
GUEST, unregistred user!
公式:2=3+4-5
6=(2+3)/5
公式含义:edit2.text:=inttostr(strtoint(edit3.text)+strtoint(edit4.text)-strtoint(edit5.text))
edit6.text:=floattostr((strtofloat(edit2.text)+strtofloat(edit3.text))/strtofloat(edit5.text))
公式说明:公式长度不固定,也可以有4=3+2+5+6+7等
有除号的公式要返回浮点数值。
要求:有多个公式,要求根据给出的公式进行转换计算,得出结果。
 
你去下载一个数学公式解释器,这样的控件很多,SYSTOOLS就带一个TStExpressionEdit
如果要免费的话,下载个免费的PASCAL解释控件,将公式转化成函数运行即可.
 
编辑框用控件数组,这样可以简化一点。
剩下的就是四则运算的算法。一般介绍“栈和队列”的教程中都有这个例子。

foxpro 中有专门的函数 Eval(...) 实现的就是这个功能,当然它不局限于四则运算。
 
你可以用栈的方法处理运算式。算法介绍的书上有,现在的函数没有。
 
多人接受答案了。
 
顶部