|
自己写的一个数学表达式解析库,用于把数学表达式转换成浮点数字(或抛出错误)
一个函数,字符串入,浮点数字出,简单易用
比如传入cos(8+1*ln(9.783-2)/6+1)*sin(cos(9-7*7))+(1.01^100+(-1*900.01^7+sin(9-8*9)))
就会返回 -4.78334e+020
支持:浮点数加减乘除,sin cos tan及其反函数双曲函数;指对幂,绝对值,阶乘,随机浮点数随机整数;无限括号嵌套,弧度/角度制,内置六个待定参数的变量uvwxyz,用于解方程和多元函数,可以使用Ans调用上次的结果
实现不是很难,最传统的用栈和线性表,先化为逆波兰式再求解。代码尽量注释了,可能会有BUG。正确性和精度经过了基本验证,能和GGB 6位有效数字保持一致。
例程有c51和c++的。c51程序的是运行在stc单片机上的。稍加修改16k rom 2k ram的单片机都能跑。c++的没什么好说的,控制台交互。
表达式解析库是expression.x |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
有一句段子是这样说的,身家过亿的只关心自己的身体,身家千万的,在担心传承,勉强糊口度日才天天看国际新闻,关心国家大事。
|