多功能科学计算器
处理复数和科学函数的计算器。
引言
这是一个包含许多功能的科学计算器,例如:
- 普通算术运算。
- 阶乘、排列、组合等函数。
- 科学函数(sin、cos、sin-1、cos-1、sinh、cosh、sinh-1 等)。
- 复数运算。
- 变量值的存储和这些变量的运算。
- 使用缩写形式表示值(例如 m 表示毫,M 表示兆等)。
- 简单级数求值。
- 包含上述任何组合的表达式。
使用的概念
递归解析器
计算器使用递归解析器来求值表达式。递归解析器的部分如下图所示。解析器使用正确的运算符优先级。完整的优先级可以通过查看代码得知。
使用解析器进行表达式求值的优点
所需过程的复杂性被分解成许多部分,从而使每个部分都更容易理解,并且整体结构更加稳健。更容易更改实现的运算符优先级。
另一种方法
我们可以使用堆栈来执行表达式求值。但是,与递归函数方法相比,将复杂性分解到许多过程中并不那么直接,我们可能会失去递归函数方法的优势。
一些特殊功能
易于使用的界面
计算器提供了一个易于使用的界面。可以使用键盘输入表达式,或通过单击鼠标按钮输入。对于使用变量(X、Y、A、B 等)和 pi (π) 等符号的表达式,最好使用鼠标,因为这些字符是特殊字符。
以分数形式显示求值结果
表达式的值可以以普通十进制形式或分数形式查看。默认为十进制形式。要更改为分数形式,请检查工具栏菜单选项中的“分数”选项 -> 显示。
以极坐标形式显示求值结果
复数可以以默认形式 (a+bi) 或以 rLθ 的形式查看。要更改为极坐标形式,请检查工具栏菜单选项 -> 显示中的“极坐标”选项。
不同单位的角度测量
角度测量可以是度、弧度或梯度。选择可以在主窗体的右上方使用 DomainUpDown 进行。此选择会影响三角计算以及复数在极坐标形式下显示时的幅值。一旦 DomainUpDown 中的选择发生变化,表达式文本框中的表达式就会重新计算。
内存计算
答案内存
每当值文本框中出现值时,它都会通过存储结果来自动更新 Ans 内存内容。 可以在下一个表达式中使用该值,方法是使用变量 Ans 放在表达式的任何位置。 如果在求值时出错,Ans 内存不会更新。变量
- 计算器提供 9 个内存变量。
- 值可以存储在这些变量中,以后可以在表达式中使用。
- 即使在应用程序关闭后,这些值仍会存储在计算机的文件中,并在下次运行应用程序时保留这些值。
- 存储在变量中的值可以是实数或复数。
系列文章
我们可以计算级数,例如前十个自然数的和,或 20 到 40 之间的偶数的乘积。
如何使用
-
- 只需运行演示项目。为此,请下载文件 scientific_calculator_demo.zip。解压文件。运行文件 scientific_calculator_demo/release/calculator。
- 输入任何表达式,如前所述。
- 按“=”按钮,或按键盘上的“=”或“[Enter]”键即可查看答案。如果答案很长,请向下滚动文本框以查看完整答案。
将值存储在变量中并使用它们
-
-
- 选中“mem”单选按钮。
- 我们可以直接向内存变量添加或减去。根据是否选中了 store、add 或 subtract 复选框,值会被存储到、加到或减去被点击的变量中。如果内存变量窗体上没有选中任何复选框,则点击此窗体中的按钮会将相应的变量插入到表达式中。
- 内存变量可以包含实数值或复数值。
-
求值包含三角函数的表达式
选中“Trignometry”单选按钮。 现在,只需单击三角函数窗体中的按钮即可将函数添加到表达式中。 要将反函数添加到表达式中,请单击“inv”复选框,然后单击所需反三角函数的按钮。求值包含级数的表达式
- 选中“series”单选按钮。
- 在表达式文本框中的级数表达式中输入变量的下限,然后选中“Setlow”然后按“I”按钮。同样,为级数表达式中的变量设置上限。
- 变量的上限和下限必须是整数,并且数值上上限必须大于下限。
- 现在输入包含级数表达式的表达式,然后按“=”查看结果。
- 例如,要查找前十个自然数的和:输入 1 -> Setlow -> I;输入 10 -> Sethigh -> I;输入“SΣI”->=;在值文本框中查看答案 55。
- 目前,对于单个表达式中出现的所有 SΣ 和 Sπ,变量的范围是相同的。通过进一步增强,我们可以摆脱这种限制。
Android 应用
这是一个使用本文所述相同解析器的 Android 应用:Google Play 上的计算器。唯一不同的是,该应用在 JS 中实现了相同的解析器,并使用了 PhoneGap。
网站
这是一个使用本文所述相同解析器的网站: https://calc.multisocialshare.com
关于我
您可以访问我的网页了解更多关于我的信息。