编译型复数表达式计算器

ggguiui 42 0 RAR 2018-12-09 01:12:49

由于在最近的一个项目中需要用到复数表达式的计算,计算的特点是:对于同一个公式需要进行重复多次的计算,每次计算时只需要变换公式中的某些变量的值。于是花了点时间写了个编译型的复数表达式计算器,该计算器的核心思想是对一个字符串编译一次,转换为一个计算序列,计算时不再分析字符串,直接按照计算序列计算。例如:1+2*5,可以转换为类似下面的计算序列: 1、数值1赋值到临时变量1 2、数值2赋值到临时变量2 3、数值5赋值到临时变量3 4、临时变量2等于临时变量2乘以临时变量5 5、临时变量1等于临时变量1加上临时变量2 6、返回临时变量1 这样在多次重复计算是就省去了编译的过程,提高了效率。 基于以上思想我编写了这个编译型复数表达式计算器。 该计算器提供了多种复数计算函数,支持变量(变量在表达式中以大写的V开头),支持多行表达式,表达式之间用分号";"间隔。例如您可以这样写计算表达式: V0=12+i; V1=V0*V0; log(V1); 计算的结果为4.976734 + 0.166282i。 >  支持常量e和pi,例如表达式e^pii的计算结果为-1.000000 + 0.000000i。支持的运算符有-(负号)、+、-、*、/、^(幂运算符)、=、(、)、i(虚数定义符);支持的函数有abs, arg, conj, real, imag, norm, exp, log, log10, sqrt, sin, cos, sinh, cosh, tan, tanh ...展开详情收缩

用户评论
请输入评论内容
评分:
Generic placeholder image 卡了网匿名网友 2018-12-09 01:12:49

不是很好,还可以改进

Generic placeholder image 卡了网匿名网友 2018-12-09 01:12:49

没有源码,很失望