[作品]MathParser 解析數學字串

看板MacDev作者 ( )時間8年前 (2016/12/23 22:32), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/1
在這邊跟大家分享一個自己寫的一個簡單程式庫,已放上gitHub https://github.com/kuanHungWang/MathParser 是以Objective-C撰寫,主要功能是針對數學表達的字串進行解析, 接著用調度場演算法,將一般人類易讀的中綴式(Infix)轉換成後綴式(postFix), 並計算出該數學式的結果,並可以自己定義函數。 shunting yard algorithm (調度場演算法) https://en.wikipedia.org/wiki/Shunting-yard_algorithm 後綴式又稱逆波蘭表達式(reversed polish notaion, 簡稱RPN) https://en.wikipedia.org/wiki/Reverse_Polish_notation 使用方法很簡單,只要把source資料夾內的兩個檔案: BTMathParser.h BTMathParser.m 加入到你的專案,並在需要的程式碼前面#import "BTMathParser.h" 然後創建一個BTMathParser的instance BTMathParser *mathParser = [[BTMathParser alloc] init]; 就可以解析一個數學表達字串並回傳其計算結果 float result = [mathParser valueForExpression:@"(1+2)*(2+3)" error:nil]; 其實類似的程式庫在GitHub上已經不少見,而此程式庫的特色是可以用block的方式 自定義函數。因為是使用block,所以可以調用函數跟參數以外的資訊,例如寫一個 股價移動平均數的函數MA(n), n代表日數,歷史收盤價可以由別的地方傳遞。 除了自定義函數的功能以外,另外還有error物件可以告訴你有哪些錯誤 詳情請看說明檔。 以上簡介請多多指教,希望能夠幫到有需要的人 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.173.122 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1482503578.A.BDC.html

12/25 01:41, , 1F
推愛心
12/25 01:41, 1F

12/26 09:26, , 2F
推分享
12/26 09:26, 2F

12/27 17:07, , 3F
12/27 17:07, 3F
文章代碼(AID): #1ONJMQlS (MacDev)
文章代碼(AID): #1ONJMQlS (MacDev)