2011-09-30 137 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的應該已經認識到的跡象,如*如超過+