我必须编写一个能够解析公式的程序。
它应该像下面的示例一样工作:
输入:5x + 7 ^ sin(z) / 2T + 44 输出:输入x,z,t的值 输入:2,1,2 输出:答案是:某个东西
输入:5x + 7 ^ sin(z) / 2T + 44 输出:输入x,z,t的值 输入:2,1,2 输出:答案是:某个东西
它应该支持(+,*,-,^,%,SIN,COS)
我已经阅读了关于Shunting-yard算法的this页面
而且我知道如何将中缀表达式转换为后缀或前缀。
这是我的算法:
1-给出表达式。
2-如果括号平衡,请继续步骤3,否则显示错误并返回步骤1。
3-找到除(SIN,COS)之外的所有变量。
4-从输入中获取变量。
5-替换变量。
6-给表达式加前缀并计算。
7-在输出中显示结果并关闭程序。
是这样的吗?我想在C#中实现它。
请为我提供任何可能对我有用的注释。