WEB开发网
开发学院软件开发VC 任意数学表达式计算 阅读

任意数学表达式计算

 2009-04-15 20:03:45 来源:WEB开发网   
核心提示: 2. 有几点需说明:程序中需要判断符号函数的位置,需加上一标记符,任意数学表达式计算(3),故规定表达式中调用符号函数是必须加上[ ],如sin[30],exp[2+3+sin[30]]等,显示计算内容,最多100步,对于pow和log,为了使程序具有通用行

2. 有几点需说明:

程序中需要判断符号函数的位置,需加上一标记符,故规定表达式中调用符号函数是必须加上[ ],如sin[30],exp[2+3+sin[30]]等。

对于pow和log,为了使程序具有通用行,规定pow和log的参数为两个,如根号2为pow[2,0.5], log[10,20],log[E,30]等,若输入参数为单个,程序会出现错误报警:表达式非法。

一些基本常识规则在计算表达式是必须遵守,如根号下不能出现负数,即pow[-10,0.5]是违反规则的。

程序中定义了几个基本常数,PI为3.1415926,E为2.71828。如计算ln20时,可输入log[E,20]。

程序涉及角度计算,规定用角度,如30度角正弦函数值:sin[30]

程序中函数调用时必须小写,如SIN,COS,EXP等大写方式为非法调用;变量如PI,E等一定要大写;参数X,Y,Z等务必大写。主要原因是为了防止函数名和变量,常量混合,变量在程序中是通过替换实现的。

程序中若存在符号函数嵌套,需在内层符号函数上加括号,如:pow[2,(sin[30])].对于单个参数的函数,不加括号可以,如sin[sin[30]];对于pow和log必须在嵌套函数中加括号以保证计算的正确性。

程序中很多代码看起来很怪,但是请勿随意删除,每段代码都是调试后加上去的,目的是保证程序的健壮。如减去负数2--2,在程序中要变换为2+2.等。

每次计算均生成result.txt文件存储计算过程,另外step[]用于存储计算步骤,显示计算内容,最多100步,stepNum为当前部数。

程序中定义了参数输入函数: double GetResultFrString1(CString str,CString parm,double val);//一个未知参数
double GetResultFrString2(CString str,CString parm1,double val1,CString 
parm2,double val2);//两个未知参数
double GetResultFrStringN(CString str,CString parm[],double val[],int N);//N个未知

上一页  1 2 3 4 5  下一页

Tags:任意 数学 表达式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接