QT之計算器核心解析算法
阿新 • • 發佈:2018-03-22
QT 解析算法 那麽在合法的四則運算表達式中:括號必然是成對出現的,左括號必然先於右括號出現,可以用偽代碼進行描述:
經過這樣,我們就可以確保計算機正確的將中綴表達式轉換成後綴表達式,也就是將表達式轉換為計算機理解的行為。
那麽這是計算機所轉換的三個示例:
下來我們構建運行下程序看看輸出是否正確執行,我們在構造函數這樣輸入:
輸出結果如下:
那麽今天的學習就到這了,現在程序已經能按照計算機的思維進行四則運算的讀取了,後面我們繼續學習相關知識。
上節我們說到計算機默認的是後綴表達式,那麽中綴表達式轉後綴表達式的過程就類似於編譯過程。
必須得註意這麽幾個問題:四則運算表達式中的括號必須匹配;根據運算符優先級進行轉換;轉換後的表達式中沒有括號;轉換後可以順序計算出最終結果。
下來我們就講下具體的轉換過程:
1、當前元素 e 為數字:輸出
2、當前元素 e 為運算符時:1. 與棧頂運算符進行優先級比較;2.小於等於時將棧頂元素輸出,轉1;3.大於時將當前元素 e 入棧
3、當前元素 e 為左括號:入棧
4、當前元素 e 為右括號:1.彈出棧頂元素並輸出,直至棧頂元素為左括號;2.將棧頂的左括號從棧中彈出
用偽代碼描述出來就是這樣:
其中的關鍵點是轉換過程中左右括號是重要的標誌,那麽如何確保表達式中的括號能夠左右匹配?
經過這樣,我們就可以確保計算機正確的將中綴表達式轉換成後綴表達式,也就是將表達式轉換為計算機理解的行為。
那麽這是計算機所轉換的三個示例:
下來我們構建運行下程序看看輸出是否正確執行,我們在構造函數這樣輸入:
輸出結果如下:
那麽今天的學習就到這了,現在程序已經能按照計算機的思維進行四則運算的讀取了,後面我們繼續學習相關知識。
以上內容來自狄泰軟件學院的QT教程,歡迎大家一起來學習,可以加我QQ:243343083,一起學習。狄泰技術交流群:199546072
QT之計算器核心解析算法