2010-09-11 40 views
0

可能重复:如何解析包含+, - ,*,/和括号的数字运算并返回结果?

var i : integer; 
begin 
    i=5 + 5 + (2 * (3 + 2)) + (1 * 4 + (1 - 3)) 
end; 

但我想,以这种方式工作的命令:
Best algorithm for evaluating a mathematical expression?

我的意思是,当你在德尔福进入这个喜欢

var i : integer; s:string; 
begin 
    s:='5 + 5 + (2 * (3 + 2)) + (1 * 4 + (1 - 3))'; 
    i:=ParseInt(s); 
end; 

在此先感谢

+0

这是编译器/解释器方法中的一个基本问题,尽管您不需要完整的工具包。查看[学习编写编译器](http://stackoverflow.com/questions/1669/)以获取详尽的资源列表。我想推荐Crenshaw教程来解决这个问题,但是您必须将编译器调整为解释器。 – dmckee 2010-09-11 14:34:03

回答

1

有许多可用的为Delphi免费或廉价的数学分析器组件:

Foreval是开源的,可作为一个DLL或Delphi的组件。

TbcParser是19.95美元的源代码。

相关问题