看板 MacDev 關於我們 聯絡資訊
在這邊跟大家分享一個自己寫的一個簡單程式庫,已放上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
ho83leo: 推愛心 12/25 01:41
ilms49898723: 推分享 12/26 09:26
jeff12280: 推 12/27 17:07