如何用最简单的方式将一个不定的字符串转换成一个算术表达式(200分)

L

LiGen

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用最简单的方式将一个不定的字符串转换成一个算术表达式
如:
Var
S:String;
x,z,k:Integer;
y,k:Real;
s:='x+y+z';或
S:='x*y+z';或
S:='x*z+123.99'; 等等不定表达式字符串
请问如何用最简单的方式将 S 变成一个算术表达式,使 k 等于 S 对应的表达式值,
即:
K:=转换表达式(S);
 
一般方法方法:
1、算式解释器
2、pas/vb/java/... script解释器
 
转换方式很多,比如用个算术表达式解释器或调用PASCAL解释器.
但最简单的方式就很难说了,我想了一招,如果你的变量数目是固定的,可以建个变量表,
将变量赋值给表,然后SELECT 表达式 FROM 变量表
 
我以前做过一个,好像是逆波兰表达式吧,用堆栈,是不是最简单我还不知道了。。。
 
顶部