-
這就是編譯器中語法分析原理的用武之地
你沒有發現這樣的表示式可以在編譯器中正確計算嗎?
要實現詞彙表達,語法分析就是要知道以下幾點。
1.要了解資料結構,可以使用兩個堆疊(資料結構中的堆疊)來實現乙個簡單的計算器程式。
2. 複雜的計算器程式需要使用語法樹(資料結構中的二叉樹)來實現。
3、對詞彙分析和語法分析有較好的理解。 詞彙分析就是將表示式乙個接乙個地轉換為字元和數字,而語法分析就是將表示式轉換為語法樹。
4. 了解表示式的字首、中間固定和字尾。 編譯系統是優先順序的一般示例嗎? 這是通過將中綴表示式轉換為字尾表示式來實現的。 在字尾表示式中,可以忽略表示式的優先順序。
5.表示式的儲存:即用什麼樣的方法將這個“1+2x3+4 2”表示式儲存在記憶體中,如果是字串,那麼在詞法分析中,就需要將字元轉換為數字1,如1,這也是乙個問題。
6、在計算的時候,是不是要先檢查使用者輸入的表示式是否有效,最好有一些智慧型判斷,這樣才不至於在使用者輸入的時候注意錯誤的表達,這樣你也可以給出計算結果,這樣會誤導使用者。
7.建議你先寫乙個簡單的計算器,就像Windows下的標準計算器一樣,它的優先順序問題需要使用者自己解決。 你想寫的那種計算器是高階計算器,這並不容易。
-
解決方案:文字框的 readonly 屬性設定為 true
2.計算完成後,可以不按C鍵繼續另乙個操作(例如,計算10+9=19後,可以直接輸入其他數字,無需按C鍵清除零,然後可以重新操作另乙個操作)。
解決方法:設定乙個布林型別識別變數,計算結果後賦值為真,在輸入過程中再次確定該標識變數的值,進行相關操作。
3.如何轉換符號鍵,系統自帶的計算器可以毫無誤差地實現數字“+”或轉為“-”“[2 +( )],**怎麼寫?
解決方案:首先,符號鍵的轉換是對字串進行處理,獲取文字框的內容並將值賦值給乙個字串變數,並提取該變數的符號;
其次,轉換純數字部分然後計算它基本上是可以的。
如果沒有,請與我打招呼,或問我。
-
第一種和第二種很簡單,第三種涉及演算法問題,需要特殊處理,線上計算器的實現方式很多,搜尋搜尋,讓別人在這裡提出原始碼是不切實際的,菜鳥應該多學點,自己動手解決問題,否則永遠做不了老鳥。