2011-09-30 92 views
-3

我试图做一个简单的计算器,它会考虑运营秩序。 我的意思是,1 + 2 * 3 = 7操作顺序(数学)(JAVA)

我有一个名为PROC串包含这两个值和opertations, 所以对于上面的例子中这将是{1,+,2,*,3}。

任何建议,我怎样才能使它发挥作用吗?

+1

气味功课,但是......你尝试过什么迄今为止更高的优先级?你在做自己的解析器吗? –

+4

第一步 - 考虑如何实现一个计算器,其中所有操作符具有相同的优先级(所以您只是将它们应用到左侧)。一旦你完成了整理,考虑如何修改*该体系结构以允许运营商执行不同的首选项... –

+0

使用表达式树。 – usoban

回答

1

中缀,后缀和前缀是处理的运算表达式的3种方式。使用postix符号编写的表达式可以通过使用堆栈的简单算法进行评估。 Read more details here,它有一些伪代码可以帮助你理解这一点。

-1

括号是运营秩序的最佳选择,但Java的应该已经认识到的迹象,如*如超过+