|
理论上支持无穷表达式计算,支持错误表达式说明。
最终版对测试版的变化:
1、欧拉常数、圆周率由原来的函数形式引用改为常数形式引用,
下面红字的示例是常量形式引用圆周率,最后面二幅图是原来的函数形式引用圆周率;
2、小数点后最多可以输出16位,默认6位;
3、增加若干函数,对数函数由原来的两个增加到三个(注意参数的变化),见下面的列表;
4、无参数执行命令时,即会列出使用说明。
源码说明
因这类工具网上很多,也与论坛的已有工具部分功能重叠,所以这个工具不会再更新,
但附出源码,有兴趣的可以搞下去,只要在适当地方保留本人的信息就够了。
本人这个源码设计的架构相当先进,也有详细的注释,对数学表达式的解释思路也很明白,执行效率也不错,要扩展功能,
如添加新的数学常量、新的数学函数或新的自定义函数都相当容易,
在源码的头文件( CALC.H )开始处说明如何添加新的数学常量和新的数学函数。
源码特点:注释详细、思路清晰、扩展容易,可以计算无穷复杂的数学表达式。
CONST enum cConstIndex //常量序号
{
Const_e, //欧拉常数e
Const_pi, //圆周率π
//可以此处添加新的数学常量序号
};
CONST struct //常量结构
{
PTSTR ptzConstName;
CONST DOUBLE fData;
}
c_sConstant[] = //常量名称和常量数值列表
{
{TEXT("e"), 2.71828182845904523536}, //欧拉常数e
{TEXT("pi"), 3.14159265358979323846}, //圆周率π
//可在此添加新的数学常量名称和数值
};
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
CONST enum cFuncIndex //函数序号
{
Func_abs, //绝对值函数
Func_arccos, //反余弦函数
Func_arcctg, //反余切函数
Func_arcsin, //反正弦函数
Func_arctan, //反正切函数
Func_ceil, //向上取整
Func_cos, //余弦函数
Func_ctg, //余切函数
Func_deg, //弧度转角度
Func_exp, //e的幂函数
Func_floor, //向下取整
Func_hypot, //直角三角形弦长
Func_lg, //10的对数
Func_ln, //自然对数
Func_log, //对数函数
Func_mod, //余数函数
Func_pow, //幂函数
Func_pow10, //10幂函数
Func_rad, //角度转弧度
Func_rand, //随机函数
Func_sin, //正弦函数
Func_sqrt, //开方函数
Func_tan, //正切函数
//可在此添加新的数学函数序号
};
CONST TCHAR c_sFuncName[][16] = //函数名列表
{
TEXT("abs"), //绝对值函数
TEXT("arccos"), //反余弦函数
TEXT("arcctg"), //反余切函数
TEXT("arcsin"), //反正弦函数
TEXT("arctan"), //反正切函数
TEXT("ceil"), //向上取整
TEXT("cos"), //余弦函数
TEXT("ctg"), //余切函数
TEXT("deg"), //弧度转角度
TEXT("exp"), //e的幂函数
TEXT("floor"), //向下取整
TEXT("hypot"), //直角三角形弦长
TEXT("lg"), //10的对数
TEXT("ln"), //自然对数
TEXT("log"), //对数函数
TEXT("mod"), //取余数函数
TEXT("pow"), //幂函数
TEXT("pow10"), //10的幂函数
TEXT("rad"), //角度转弧度
TEXT("rand"), //随机函数
TEXT("sin"), //正弦函数
TEXT("sqrt"), //开方函数
TEXT("tan"), //正切函数
//可在此添加新的数学函数
//添加新的数学函数后,再在下在的函数 CalcFunctionExpression 中添加它的功能
};
功能如下:
数学表达式计算命令,By Lxl1638
使用方法: Calculator.EXE {代数表达式}#小数位数(默认6位最多16位)
支持的运算符号: 加"+"、减"-"、乘"*"、除"/"、幂"^"和括号解释
支持的数学常数: e 表示欧拉常数, pi 表示圆周率π
支持的数学函数: 共计23个
abs(a) 绝对值函数
arccos(a) 反余弦函数
arcctg(a) 反余切函数
arcsin(a) 反正弦函数
arctan(a) 反正切函数
ceil(a) 向上取整
cos(a) 余弦函数
ctg(a) 余切函数
deg(a) 弧度转角度
exp(a) e的幂函数
floor(a) 向下取整
hypot(a,b) 直角三角形弦长
lg(a) 10的对数
ln(a) 自然对数
log(a.b) 对数函数
mod(a,b) 余数函数
pow(a,b) 幂函数
pow10(a) 10幂函数
rad(a) 角度转弧度
rand(a) 随机函数
sin(a) 正弦函数
sqrt(a) 开方函数
tan(a) 正切函数
使用示例: Calculator.EXE 2*arcsin(sin(pi/2))#8
示例演示(红色这样的表达式够复杂了):
J:\>Calculator.exe exp[(56-(((((((sin[(1+29)*pi/180]+3+2.5)+4)+sin[30*pi/180]+4.5)+6)+7)+8)+9)-10)]+56-sin[30*pi/180]+4.5
62.7183
[ 本帖最后由 lxl1638 于 2010-11-22 10:54 编辑 ] |
|