【发布时间】:2011-04-22 08:31:22
【问题描述】:
我必须编写一个能够解析公式的程序。 它应该像下面这个例子一样工作:
输入:5x + 7 ^ sin(z) / 2T + 44
输出:输入 x 、 z 、 t 的值
输入 : 2 , 1 ,2
输出:答案是:某事
它应该支持 (+ , * , - , ^ , % , SIN , COS)
我确实阅读了this 页面上关于调车码算法
而且我还知道如何将中缀表达式转换为后缀或前缀。
这是我的算法:
1 - 给出表达式。
2 - 如果 括号是余额 转到步骤 3 否则显示错误转到步骤 1
3 - 找出除 (SIN , COS)
4 - 给出变量来自 输入
5 - 替换变量
6 - 为表达式添加前缀并计算它
7 - 在输出中显示结果 并关闭程序
对吗?我想在 C# 中实现它
请建议我任何可能对我有用的注释。
【问题讨论】:
-
你可以使用 ANTLR,见Q&A。