2

我有个问题。例如,在我的应用程序中,我想使用在文本框中键入的函数(比如说f(x)x变量在哪里)sin(x) + x*x - 5

我想要的是 C# 将此函数识别为Math.Sin(x) + x*x - 5,换句话说,要知道它x是变量。

我有 x 一些 2000 个数据,比如说xi, where i = 2000,所以我想要的只是f(xi)值,对于所有x数据,f文本框中的函数在哪里。

4

2 回答 2

2

您正在寻找的是一个表达式解析器——即将文本框中的表达式字符串转换为可以执行的东西(通常是语法树)的一段代码。

如果你用谷歌搜索“math expression parser c#”,你会发现各种各样的东西——从像这样的产品到像这样 简单示例。

于 2012-04-11T15:05:58.257 回答
0

您或您的用户是否可以提前定义变量名称?

例如,让用户知道他们可以使用“y”、“x”或“n”作为变量名,但不能使用其他任何东西,或者让用户在尝试解析公式之前在程序中定义变量?这将使在文本中识别它们并相应地处理它们变得容易得多。

在实际解析表达式方面,考虑将其转换为“反向波兰表示法”。这是一个示例程序: http: //www.codeproject.com/Articles/5875/C-Expression-Parser-using-RPN

于 2012-04-11T15:07:38.997 回答