C#数学运算表达式解释器
时间: 2023-07-01 15:09:41 浏览: 210
编译原理实验报告-算术表达式解释器的设计与实现
C#数学运算表达式解释器可以帮助你将一个字符串形式的数学表达式转换为计算结果。下面是一个简单的例子:
```csharp
using System;
using System.Data;
class Program
{
static void Main(string[] args)
{
string expression = "2+3*4";
var result = new DataTable().Compute(expression, null);
Console.WriteLine(result);
}
}
```
输出结果为14,表示计算得到了正确的结果。在这个例子中,我们使用了C#内置的DataTable类中的Compute方法来进行计算。你也可以手动实现一个解释器来实现对表达式的解析和计算。以下是一个简单的实现:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
string expression = "2+3*4";
var result = Evaluate(expression);
Console.WriteLine(result);
}
static double Evaluate(string expression)
{
var parts = expression.Split('+', '-');
double result = EvaluatePart(parts[0]);
for (int i = 1; i < parts.Length; i++)
{
var op = expression[parts[i - 1].Length];
var operand = EvaluatePart(parts[i]);
if (op == '+')
result += operand;
else
result -= operand;
}
return result;
}
static double EvaluatePart(string part)
{
var parts = part.Split('*', '/');
double result = double.Parse(parts[0]);
for (int i = 1; i < parts.Length; i++)
{
var op = part[part.IndexOf(parts[i]) - 1];
var operand = double.Parse(parts[i]);
if (op == '*')
result *= operand;
else
result /= operand;
}
return result;
}
}
```
在这个实现中,我们首先按照加减号将表达式分成若干部分,然后对每个部分再按照乘除号进行计算。最终得到表达式的计算结果。
阅读全文