65.9K
CodeProject 正在变化。 阅读更多。
Home

多功能科学计算器

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.56/5 (36投票s)

2007年1月28日

CPOL

5分钟阅读

viewsIcon

192396

downloadIcon

14276

处理复数和科学函数的计算器。

Sample Image - scientific_calculator.jpg

引言

这是一个包含许多功能的科学计算器,例如:

  1. 普通算术运算。
  2. 阶乘、排列、组合等函数。
  3. 科学函数(sin、cos、sin-1、cos-1、sinh、cosh、sinh-1 等)。
  4. 复数运算。
  5. 变量值的存储和这些变量的运算。
  6. 使用缩写形式表示值(例如 m 表示毫,M 表示兆等)。
  7. 简单级数求值。
  8. 包含上述任何组合的表达式。

使用的概念

递归解析器

计算器使用递归解析器来求值表达式。递归解析器的部分如下图所示。解析器使用正确的运算符优先级。完整的优先级可以通过查看代码得知。

Sample image - parser.jpg

使用解析器进行表达式求值的优点

所需过程的复杂性被分解成许多部分,从而使每个部分都更容易理解,并且整体结构更加稳健。更容易更改实现的运算符优先级。

另一种方法

我们可以使用堆栈来执行表达式求值。但是,与递归函数方法相比,将复杂性分解到许多过程中并不那么直接,我们可能会失去递归函数方法的优势。

一些特殊功能

易于使用的界面

计算器提供了一个易于使用的界面。可以使用键盘输入表达式,或通过单击鼠标按钮输入。对于使用变量(X、Y、A、B 等)和 pi (π) 等符号的表达式,最好使用鼠标,因为这些字符是特殊字符。

以分数形式显示求值结果

表达式的值可以以普通十进制形式或分数形式查看。默认为十进制形式。要更改为分数形式,请检查工具栏菜单选项中的“分数”选项 -> 显示。

以极坐标形式显示求值结果

复数可以以默认形式 (a+bi) 或以 rLθ 的形式查看。要更改为极坐标形式,请检查工具栏菜单选项 -> 显示中的“极坐标”选项。

不同单位的角度测量

角度测量可以是度、弧度或梯度。选择可以在主窗体的右上方使用 DomainUpDown 进行。此选择会影响三角计算以及复数在极坐标形式下显示时的幅值。一旦 DomainUpDown 中的选择发生变化,表达式文本框中的表达式就会重新计算。

内存计算

答案内存

    • 每当值文本框中出现值时,它都会通过存储结果来自动更新 Ans 内存内容。
    • 可以在下一个表达式中使用该值,方法是使用变量 Ans 放在表达式的任何位置。
    • 如果在求值时出错,Ans 内存不会更新。

变量

    • 计算器提供 9 个内存变量。
    • 值可以存储在这些变量中,以后可以在表达式中使用。
    • 即使在应用程序关闭后,这些值仍会存储在计算机的文件中,并在下次运行应用程序时保留这些值。
    • 存储在变量中的值可以是实数或复数。

系列文章

我们可以计算级数,例如前十个自然数的和,或 20 到 40 之间的偶数的乘积。

如何使用

    1. 只需运行演示项目。为此,请下载文件 scientific_calculator_demo.zip。解压文件。运行文件 scientific_calculator_demo/release/calculator。
    2. 输入任何表达式,如前所述。
    3. 按“=”按钮,或按键盘上的“=”或“[Enter]”键即可查看答案。如果答案很长,请向下滚动文本框以查看完整答案。

将值存储在变量中并使用它们

      1. 选中“mem”单选按钮。
      2. 我们可以直接向内存变量添加或减去。根据是否选中了 store、add 或 subtract 复选框,值会被存储到、加到或减去被点击的变量中。如果内存变量窗体上没有选中任何复选框,则点击此窗体中的按钮会将相应的变量插入到表达式中。
      3. 内存变量可以包含实数值或复数值。

求值包含三角函数的表达式

    1. 选中“Trignometry”单选按钮。
    2. 现在,只需单击三角函数窗体中的按钮即可将函数添加到表达式中。
    3. 要将反函数添加到表达式中,请单击“inv”复选框,然后单击所需反三角函数的按钮。

求值包含级数的表达式

    1. 选中“series”单选按钮。
    2. 在表达式文本框中的级数表达式中输入变量的下限,然后选中“Setlow”然后按“I”按钮。同样,为级数表达式中的变量设置上限。
    3. 变量的上限和下限必须是整数,并且数值上上限必须大于下限。
    4. 现在输入包含级数表达式的表达式,然后按“=”查看结果。
    5. 例如,要查找前十个自然数的和:输入 1 -> Setlow -> I;输入 10 -> Sethigh -> I;输入“SΣI”->=;在值文本框中查看答案 55。
    6. 目前,对于单个表达式中出现的所有 SΣ 和 Sπ,变量的范围是相同的。通过进一步增强,我们可以摆脱这种限制。

Android 应用

这是一个使用本文所述相同解析器的 Android 应用:Google Play 上的计算器。唯一不同的是,该应用在 JS 中实现了相同的解析器,并使用了 PhoneGap。

网站

这是一个使用本文所述相同解析器的网站: https://calc.multisocialshare.com

关于我

您可以访问我的网页了解更多关于我的信息。

© . All rights reserved.