Re: [請益] 中序與後序式中的負號與減號處理問題?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章