Re: [請益] 中序與後序式中的負號與減號處理問題?

看板Programming作者 (良葛格)時間6年前 (2018/11/09 16:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《SeamusBerloz (軒摩斯)》之銘言: : 第 3 種 (預先處理補零): : 2*(-18/3) ==> 2*((0-18)/3) ==> 2 0 18 - 3 / * : ==> 0 減去 18 先做 ==> 最後結果得 -12 : 小弟想請教,考慮輸入是有可能錯誤的,需要指出錯誤與不合法之處,那麼: : 1、哪一種後序在學理上才是正確的轉法? : 2、如果都不是,怎樣做才是正確的呢? 我不知道學理上怎麼做…XD 基本上,我之前用的方式是預處理,不過補 0 記得好像會有一些 corner case 沒 處理到,因此我的處理方式是將之換為一個內建符號。 我的土法是 - 的前面如果不是運算元,就表示它是負號: https://goo.gl/o1WPjR - 前面不是運算元: 1. - 前面是個 ( (表示它是在 () 裏) 2. - 前面是個運算子 這是我處理運算式的時候,留下的一些記錄: https://openhome.cc/Gossip/Toy/Operator.html 這是我實作玩具語言時,留下的記錄: https://openhome.cc/Gossip/Toy/index.html -- 良葛格學習筆記 http://openhome.cc -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.97.195 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1541751018.A.86E.html
文章代碼(AID): #1RvK3gXk (Programming)
文章代碼(AID): #1RvK3gXk (Programming)