说明:已经把下载文件转移到http://www.shaohui.org/exprcalc.html了.
两年以前在学校的时候,做了一个表达式求解的程序,是用C写的DOS环境下运行的程序,而现在用DOS的人在这个世界上已经差不多绝迹了。所以,实际上这个程序已经失去 了它的意义.最近,由于需要做一个计算器,而我发现以前的程序功能已经足够强大了,我把以前的代码做了一个小小的改动,用BCB做了一个图形界面,于是现在你所看到的公式计算器就诞生了。
由于各种实际的原因,我不便于公布该程序现在的源代码.如果确实需要,请参考http://blog.csdn.net/shaohui/archive/2004/11/05/168323.aspx, 核心的代码我没有作一行改动,只是做了个图形界面,增加使用变量的功能.
该软件为绿色软件,不需要安装,也不会修改你的注册表。
你可以到以下地址下载该软件
http://www.freewebs.com/zhengsh/download/ExprCalc.rar
http://geostar.3322.org/soroc/downloads/ExprCalc.rar
公式计算器使用说明
1 该程序能够识别大多数数学运算符号
+ 加
- 减
* 乘
/ 除
^ 乘方开方
% 取余
注意:绝对值符号||不能够使用,有专门的函数fabs或者abs求绝对值
不能够用点号代替乘号例如1*2不能够写成1.2
2. 该程序能够识别大多数数学函数(29个)
函数名称 | 内部表示 | 说明 |
arcsin | A | 反正弦 |
arccos | B | 反余弦 |
arctan | C | 反正切 |
arcctg | D | 反余切 |
arcsec | E | 反正割 |
arccsc | F | 反余割 |
arctg | C | 反余切 |
asin | A | arcsin |
acos | B | arccos |
atan | C | 反正切 |
actg | D | 反余切 |
asec | E | 反正割 |
acsc | F | 反余割 |
fabs | G | 绝对值 |
exp | H | 指数函数 |
cos | I | 余弦 |
ctg | J | 余弦 |
tan | K | 正切 |
sec | L | 正割 |
csc | M | 余割 |
cth | N | 双曲正割 |
sin | O | 正弦 |
abs | G | 绝对值 |
tg | K | 正切 |
ln | P | 自然对数 |
sh | Q | 双曲正弦 |
th | R | 双曲余弦 |
ch | S | 双曲余割 |
log | T | 对数 |
3 。 可以识别常数e和圆周率pi
不区分大小写,也就是说你写成pi,PI,pI,Pi都是等效果的
4 .可以识别省略的乘号
乘号在大多数情况下都可以省略.
列如:3*(3+4) 可以这样输入 3(3+4)
3*sin(pi/4) 可以这样输入 3sin(pi/4);
(3+4)*(3+4) 可以这样输入(3+4)(3+4)
5.函数的输入可以象数学上一样省略括号(以任意数为底数的对数函数除外)
列如:sin(pi) 可以这样输入 sinpi
6.小于1的小数可以省略小数点前的0
列如:0.123 可以这样输入 .123
0.2 * 0.3 可以这样输入 .2*.3
7.对数函数的输入格式log(底数,真数),ln真数
如:log(e,3.3)
lne
8.可以识别正负号(不是加减)
如:-3+4
+4+(-4+4)
9.能够识别几乎所有的合法的运算符号的函数的组合
如:sin cos tan sin(pi/4)
log(e,cos(pi/4))
log(lne^2,log(10,log(e,e^100)))
10.支持用户自定义变量(新功能)
注意
为了便于和函数相互区别,用户自己定义的变量都要求以下划线‘_’开头。
变量只能够包含下划线和字母,不能够有数字和其它字符.
变量的长度至少是2,以免变量名称重复。
变量名称不能够相互包含:例如你已经定义了一个叫_varible的变量,你就不能够再定义一个变量叫_var
使用举例
求方程ax2+bx+c=0的解
利用公式
X1=(-b+(b^2 -4ac )^(1/2))/( 2a )
首先定义变量
_a,_b,_c(因为变量必须以_开头)
然后可以这样
(-_b+(_b^2-4_a_c)^(1/2))/(2_a)
OK! 功能很强大,也很简单吧。
11.括号
括号包括大中小3种,它们的功能一样,可以混用,根据个人不同的习惯自己选用,但是在使用的时候请注意要配对使用。
括号内部必须要有表达式,像下面这样的式子是不对的
(1+2)*((+3+4)()(6))
括号可以多重嵌套,例如下面的式子是合法的
(1+2)((((((((((((1))))))))))))
在以下情况你需要使用括号
a.改变运算顺序
b.使用函数时候
c.当你不确定各种运算符号的优先级的时候,可以使用括号改变优先级
例如2*30%4,当你不确定计算机是先计算那一个的时候,可以加上括号
(2*30)%4,或者是这样2*(30%4)
在以下情况你可以省略括号
a.函数的表达式很简单
如ln(1)可以写成ln1, sin(pi)可以写成sinpi
|
数字
|
运算符号)
|
(左括号
|
右括号
|
函数
|
数字
|
T
|
T
|
T
|
T
|
T
|
运算符号)
|
T
|
F
|
T
|
F
|
T
|
(左括号
|
T
|
F
|
T
|
F
|
T
|
)右括号
|
T
|
T
|
T
|
T
|
T
|
函数
|
T
|
F
|
T
|
F
|
T
|