博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反向波兰表示法_Orpie:命令行反向波兰表示法计算器
阅读量:2523 次
发布时间:2019-05-11

本文共 1627 字,大约阅读时间需要 5 分钟。

反向波兰表示法

Orpie是用于Linux控制台的文本模式 (RPN)计算器。 它的工作原理与早期广受欢迎的惠普计算器非常相似。

安装Orpie

RPM和DEB软件包可用于大多数发行版,因此安装仅需使用以下任一方法:

$  sudo apt install orpie

要么

$  sudo yum install orpie

Orpie的手册页很全面; 新用户开始使用时可能希望在另一个终端窗口中打开它。 通过编辑〜/ .orpierc配置文件,可以为每个用户定制Orpie 。 手册页描述了此文件的内容, / etc / orpierc描述了缺省配置。

启动

通过在命令行中输入orpie来启动Orpie。 主屏幕在左侧显示上下文相关帮助,在右侧显示堆栈。 光标位于右下角,您在其中输入要计算的数字。

Orpie main page

计算示例

举一个简单的例子,让我们计算5的阶乘(2 * 3 * 4 * 5) 。 首先很长的路要走:

按键 结果
2 <enter> 将2推入堆栈
3 <enter> 将3推入堆栈
* 乘以得到6
4 <enter> 将4推入堆栈
* 乘以24
5 <enter> 将5推入堆栈
* 乘以得到120

请注意,只要输入* ,乘法就会发生。 如果在*后面按下<enter> ,则Orpie将在堆栈的位置1处复制该值。 (如果发生这种情况,您可以使用\删除重复项。)

等效序列为:

按键 结果
2 <enter> 3 * 4 * 5 * 快点!
2 <enter> 3 <enter> 4 <enter> 5 * * * 结果相同
5 <enter> ' fact <enter> 最快:使用内置功能

观察到当您输入'时 ,左窗格会更改为在您键入时显示匹配的函数。 在上面的示例中,键入fa足以获取事实函数。 Orpie提供了许多功能-通过键入'进行实验,并输入几个字母以查看可用的功能。

Orpie functions

请注意,每个操作都会替换堆栈上的一个或多个值。 如果要将值存储在堆栈中的位置1,请键入(例如) @factot <enter>S' 。 要检索该值,请键入(例如) @factot <enter>,然后输入 (如果要查看它;否则,请保留@factot作为下一次计算的值)。

常数和单位

Orpie了解单位并预定义了许多有用的科学常数。 例如,要计算400nm的蓝光光子中的能量,请计算E = hc /(400nm) 。 关键序列为:

按键 结果
C c <enter> 获取光速,单位为m / s
C h <enter> 在Js中获取普朗克常数
* 计算h * c
400 <space> 9 n _ m 输入4 _ 10 ^ -9 m
/ 进行除法并得到结果:4.966 _ 10 ^ -19 J

就像在键入'之后选择函数一样,键入C会根据您键入的内容显示匹配的常量。

Orpie constants

矩阵

Orpie也可以对矩阵进行运算。 例如,将两个2x2矩阵相乘:

按键 结果
[ 1 , 2 [ 3 , 4 <enter> 堆栈包含矩阵[[1,2] [3,4]]
[ 1 , 0 [ 1 , 1 <enter> 将乘数矩阵推入堆栈
* 结果是:[[3,2] [7,4]]

请注意,将自动插入]字符,输入[将开始新行。

复数

Orpie还可以使用复数进行计算。 可以以极坐标或矩形形式输入或显示它们。 您可以使用p键在极性和矩形显示之间切换,以及使用r键在度和弧度之间切换。 例如,将3 + 4i乘以4 + 4i

按键 结果
( 3 , 4 <enter> 堆栈包含(3,4)
( 4 , 4 <enter> 推(4,4)
* 得到结果:(-4,28)

请注意,在进行过程中,结果将保留在堆栈中,因此您可以在冗长的计算中观察中间结果。

Result of a long calculation in Orpie

戒掉Orpie

您可以通过输入Q从Orpie退出。 您的状态已保存,因此下次启动Orpie时,您会在离开堆栈时找到它。

翻译自:

反向波兰表示法

转载地址:http://zxyzd.baihongyu.com/

你可能感兴趣的文章
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_8_常用的函数式接口_Supplier接口...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_9_常用的函数式接口_Consumer接口...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_10_常用的函数式接口_Consumer接口中的默认方法andThen...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_11_常用的函数式接口_Consumer接口练习...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_13_常用的函数式接口_Predicate接口中的默认方法and...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_12_常用的函数式接口_Predicate接口...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_15_常用的函数式接口_Predicate接口练习-集合信息的筛选...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_14_常用的函数式接口_Predicate接口中的默认方法or和negate...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_17_常用的函数式接口_Function接口中的方法andThen...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_16_常用的函数式接口_Function接口中的方法Apply...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第2节 Stream流式思想概述_1_使用传统的方式,遍历集合,对集合进行过滤...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第2节 Stream流式思想概述_2_使用Stream流的方式,遍历集合...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第2节 Stream流式思想概述_3_流式思想概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_16_常用的函数式接口_Function接口中练习-自定义函数模型拼接...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_2_Stream流中的常用方法_forEach...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_1_两种获取Stream流的方式...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_4_Stream流的特点_只能使用一次...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_5_Stream流中的常用方法_map...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_6_Stream流中的常用方法_count...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_7_Stream流中的常用方法_limit...
查看>>