功能很簡單,輸出一個數學表達式的字符串,輸出一個結果值.還算是挺好用的一個小工具吧,比起系統自帶的計算器來,它能夠很方便的顯示表達式.之前我曾發布過一個版本,新版本的界面與舊版本一模一樣,不同的是:我重寫了套用於數學表達式解析的庫.
數學表達式解析算法使用的是分制遞歸,效率還算不錯.也許使用波蘭式的方法會更快,以後再說吧.
代碼和軟件下載地址:
http://files.cnblogs.com/WhyEngine/MathExpression.zip
早期版本地址:
http://www.cnblogs.com/WhyEngine/p/3513478.html
昨天我發了一篇博文"WHY數學表達式的3D可視化",這個小工具和它使用的是同一套表達式解析代碼.對表達式的使用格式都是一樣的.不同點在於這個版本新點,因為今天添加了對科學格式浮點數解析的功能.
(1)標准單目運算符
+,-
如:a = -b
(2)標准雙目運算符
+,-,*,/,%,^
如:c = a * b
(3)函數單目運算符 形如sin(a)
positive,negative,abs,floor,ceil,sign,sqrt,exp,log,log2,log10,sin,cos,tan,asin,acos,atan,rand
(4)函數雙目運算符 形如pow(a, b)
add,sub,multiply,divide,max,min,mod,pow,atan2,rand2,
(5)函數三目運算符 形如lerp(a, b, r)
lerp,clamp,gray,add3,min3,max3,average3
(6)函數四目運算符 形如average4(a, b, c, d)
add4,min4,max4,average4
具體的函數功能我就不解釋了,看函數名也能猜個差不多,再不就看代碼吧.