Skip to content

AdamXuD/Caculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

科学计算器(行列式部分问题挺大别用它算行列式我是憨憨)

(练手项目)

已完成部分:

  1. 从字符串读取算式;
  2. 中置表达式转化逆波兰式;
  3. 逆波兰式的运算;
  4. 引入更多运算符号(如根号)
  5. sin/cos/tan内的算式计算
  6. 一重积分运算
  7. 阶乘运算

待完成部分:

//3. 最终结果模式(完全计算到小数)和化为最简式模式(不完全计算到最终结果)

(可能不打算完成,因为我不会)

  1. 图象绘制(不知道整不整的出来)

使用方法:

简单说就是你可以直接输入算式,程序直接算出最终答案。

不支持语法检测,语法错了直接崩 不支持语法检测,语法错了直接崩 不支持语法检测,语法错了直接崩 (因为我懒得写了)

运算符优先级从高到低:

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. 加入了行列式计算
  2. 行列式每一行每一项以空格隔开
  3. 每一行以'/'结尾
  4. 行列式结束处以'//'结尾
  5. 行列式每一项都支持直接输入表达式(表达式语法同科学计算器)
用法示例:
输入>
1 log(9+(3-1)*3+10/2,400)/2 3/
4 5 6//

输出>
0.000000

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published