(练手项目)
- 从字符串读取算式;
- 中置表达式转化逆波兰式;
- 逆波兰式的运算;
- 引入更多运算符号(如根号)
- sin/cos/tan内的算式计算
- 一重积分运算
- 阶乘运算
//3. 最终结果模式(完全计算到小数)和化为最简式模式(不完全计算到最终结果)
(可能不打算完成,因为我不会)
- 图象绘制(不知道整不整的出来)
简单说就是你可以直接输入算式,程序直接算出最终答案。
不支持语法检测,语法错了直接崩 不支持语法检测,语法错了直接崩 不支持语法检测,语法错了直接崩 (因为我懒得写了)
运算符优先级从高到低:
integral sin cos tan ln log > ^ > /* > +-
支持且仅支持小括号
支持数学常量e与pi
支持多个小括号嵌套
如:
sin(((pi/2)));
结果>1.000000
可直接输入算式计算:
如:
1+2+(3+4)*5/6;
(注意算式要以分号结尾)
支持三角函数计算: 如:
sin(pi/2)+2+(3+4)*5/6;
tan(pi/4);
sin((pi/2)+2+(3+4)*5/6);
(三角函数后要用小括号括住表达式,整个程序支持且仅支持小括号)
支持对数运算: 如:
语法:log(下标, 上标);
log(10, 100);
结果>2.000000
也支持自然对数:
语法: ln(x);
ln(e);
结果>1.000000
上述三角函数,对数运算符括号内支持输入仅包含上述运算符的常量表达式。
如:
log(9+(3-1)*3+10/2, 400);
结果>2.000000
支持一重积分运算:(采用梯形算法) 如:
语法:integral(积分下限,积分上限,表达式(未知数必须表示为x));
integral(0, 1, x);
结果>0.500000
integral(0, 1, x^2);
结果>0.333333
0421更新
- 加入了行列式计算
- 行列式每一行每一项以空格隔开
- 每一行以'/'结尾
- 行列式结束处以'//'结尾
- 行列式每一项都支持直接输入表达式(表达式语法同科学计算器)
用法示例:
输入>
1 log(9+(3-1)*3+10/2,400)/2 3/
4 5 6//
输出>
0.000000