问题标签 [rpn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4105 浏览

java - java rpn计算器

我想在我的一个项目中包含一个简单的 RPN 类型计算器功能。

基本上我需要一种可以转换的方法,例如:

"30 / ((1 + 4) * 3)" 变成 "2"

有谁知道可以做到这一点的任何预先编写的库?

谢谢。

0 投票
2 回答
95 浏览

lisp - 需要帮助将径向距离转换为 lisp 程序的反向抛光概念

极坐标的距离公式如下所示:http: //math.ucsd.edu/~wgarner/math4c/derivations/distance/distancepolar.htm

我试过这样做:

但是减法和乘法之间的额外括号改变了公式,但是我不太确定如何正确地做到这一点,任何帮助将不胜感激。

0 投票
0 回答
300 浏览

postfix-notation - 应用语言可以使用后缀表示法吗?

我一直发现像 Factor 这样的后缀语言比前缀(Lispy 语言)和中缀/后缀语言(所有 C 风格的语言,如果我们同时包含运算符和函数)更具可读性。

与前缀语言不同,您不需要处处使用分隔符。与中缀表示法不同,没有复杂的优先顺序要记住。有什么不喜欢的?

这些语言似乎都是串联的,因此几乎总是基于堆栈的。

是否可以实现一种现代语言,它适用于连接,并且仍然基于后缀?

0 投票
1 回答
264 浏览

c# - 波兰符号规则添加“in”和带有逻辑的运算符

我有那个表情

现在这是 rpn 规则

我添加了 &&, ||, ~, in,

现在,它应该如何改变 RPN 的规则?

***更新

那是我的运算符表

0 投票
1 回答
2527 浏览

java - RPN 问题(操作顺序)

我正在尝试制作一个具有操作顺序的简单计算器。我在互联网上阅读并找到了RPN(反向波兰表示法)的算法。

编辑:

举个例子:2 * 5 - 3 + 4

好的,我照你们说的做了,现在检查一下:

Proc 是数字和操作的字符串数组。Proc 将是 {2, *, 5, -, 3, +, 4}

这是代码:

仍然不起作用

我怎样才能使它也能正常工作?请帮帮我!

0 投票
3 回答
6077 浏览

c# - 反向波兰符号 C# 不能正常工作

我写了一个带有结构图的rpn。

最新问题:它现在不能正常工作。

如果输入字符串是“5 + ((1 + 2) * 4) - 3”

我的输出是:5 1 2 + 4 * 3 - +

我必须得到这个结果: 5 1 2 + 4 * + 3 -

编辑了源

*那是原来的问题,但对我有帮助,现在修复了原来的错误: * ,

在循环或 int i = 12 的调试中,c 值为 0\0 或其他 值,并且该值作为 '(' 括号添加到输出(名称:公式)字符串。我不知道为什么。 最后一个'-'操作符号,不要添加到(或不看)输出字符串(公式)的末尾我错误地由 '(' 引起了这个问题。 我尝试了其他字符串输入值的程序,但是总是在我的字符串中添加一个“(”,我不知道为什么......我看到它与括号的数量无关。总是只有一个“(”添加到我的字符串...... *)是的,在英语 LengyelFormula = rpn(它是匈牙利语)*

0 投票
2 回答
3669 浏览

c - C中的逆波兰计算器:isdigit()问题

我正在用 C 做家庭作业。我必须构建一个计算器来接收 RPN,将其转换为双精度数,从堆栈中添加/删除它并打印堆栈上剩余的内容。在我运行它之前,一切似乎都很顺利。输入我的输入后,char[] 成功转换为 double(或者我认为是这样),并且在此过程中的某个地方(可能在 getop() 中)程序是否认为我没有输入数字。这是代码和输出。


输出 :

请输入波兰表示法或 ^d 退出。123 堆栈位置的值为 1 既不是数字也不是小数。
123.00 请输入波兰表示法或 ^d 退出。

任何关于正在发生的事情的想法都会非常有帮助。似乎数字被正确传递,从char正确格式化为double,然后出现问题。

谢谢你。

岩石

0 投票
2 回答
1188 浏览

c++ - 二元运算示例程序

问题陈述:编写一个 C++ 程序来计算后缀表达式。您的程序应该将后缀表达式作为输入,在堆栈的帮助下对其进行处理,并在执行所需的计算后显示结果。

此程序只允许使用以下二元运算符:+、-、*、/、^ [加、减、乘、除、幂]

如果在处理后缀表达式时发生错误,您的程序应该显示一条有意义的消息,例如: 错误:不允许除以零 错误:__ 运算符需要两个操作数 错误:后缀表达式无效

帮帮我,我的程序正在生成错误这是我的尝试:

0 投票
4 回答
2279 浏览

calculator - 斯坦福 CS193p 作业 2 - 将变量输入 RPN 计算器

我目前正在自学 iPhone 编程并致力于解决今年斯坦福 CS193p 课程的作业 2 [PDF] 。

关于必修任务 1,我有一些不明白的地方。应该为 RPN 计算器添加变量支持,以便对其进行编程。但是,某人使用此功能的假定方式是什么?那是:

  • 应该设置变量的计算器按钮的顺序是什么?
  • 用户应该如何运行具有预定义变量值的预定义计算器程序?

请注意,第 5 页的屏幕截图中没有“存储”或“运行”按钮。

0 投票
4 回答
1085 浏览

c - 如何使用while循环扫描数字和运算符系列?

我有一个标准输入,如“ 33 44 55 + 66 * + = ”,(即逆波兰表示法,RPN),我使用如下代码来解析它。但是 scanf("%d") 读取 '+' 并丢弃它,如何对运算符进行 ungetc 并使其被 scanf(" %c ") 读取?解决问题的最佳方法是什么。谢谢。