1

我正在尝试用 Pascal 构建一个程序来区分数学函数。它工作得很好(计算最小值/最大值、对称性、绘制图形等),但我必须将函数(即 x^3+3x+2)放入源代码中,如下所示:

function f(x : real): real;
begin 
   f := x * x * x + 3 * x + 2;
end;

不过,我希望用户定义功能来区分。显然 readln 函数没有帮助。有人告诉我唯一的解决方案是特定的解析器。但这非常困难,我不知道该怎么做。例如,我的想法是将函数提取到 *.txt 文件中,以便可以轻松更改它。那可能吗?有人可以给我看一个可以解决这个问题的解析器,或者有其他一些很好的解决方案吗?我将衷心感谢您的帮助!提前致谢 ;)

4

2 回答 2

0

SWAG上还有许多解析器/评估器:

我加粗了我认为最有用的那些。我不认为它们中的任何一个都像我的其他答案中的符号包那样完整,但是如果您需要帮助,它们可能值得一读。

(所有这些都是相当旧的代码。除非另有说明,否则 SWAG 的规则是将这些东西视为具有新型 BSD 许可证)

于 2013-04-09T05:09:54.133 回答
0

Free Pascal 附带了符号包,它有一个解析器和一个数学表达式求值器。您可能可以以此为起点。请参阅使用说明文档

于 2013-04-09T04:42:09.207 回答