简易数学表达式解析库
STC科学计算器官方例程玩够了,也是时候该动手写写了,老不自己写c都该忘了。。。轻量级数学表达式解析库。
输入一个数学表达式字符串,一个函数给出结果,或抛出错误。
支持:
加减乘除平方开方,严格按照的C优先级
sin cos tan及其反函数双曲函数,ln和lg
rand()和random(a,b)
6个浮点参数xyz uvw(可以用于函数和解方程)
不支持:复数,向量
向量和求和这些个慢慢支持吧,写了500行就脑壳疼了,先这样V1.0版
V2.0版源码,和Ans功能的测试视频。有了Ans功能就灵活多了,能玩很多迭代的东西了,比如求PI,开根号之类的 他就是用来解析表达式的
特别复杂的那种也可以,比如: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,对于做计算器核心功能就已经实现了
编译完了话15k左右吧。字符限长64时,占小1k左右ram,(64个字符其实非常够长了oled12864都显不下了。。。) 主打一个方便,字符进数字出,一个函数完事。分享给大家玩玩(可能会有BUG哦) 期待楼主的源码
先来份C++的吧
这个.exe运行出来直接往里输入字符串就会出结果,如果有错误程序立刻终止
用24M,下载到stc8h里,就能跑了!
大型表达式精度很高,能跟GGB一样了
噢对,刚发的那个EXE有重大BUG!
就是lg不小心当成ln了。。。
主要一看math.h里给的是log(),就以为是那个以十为底的对数捏。。。
C51版已修正这个bug _NCY_ 发表于 2024-7-18 18:44
用24M,下载到stc8h里,就能跑了!
大型表达式精度很高,能跟GGB一样了
不用别的外围电路,运行起来直接串口交换,这个demo非常好上手
页:
[1]
2