所以我有这个数学项目,我必须编写一个程序来计算给定边界内给定函数的定积分。我使用C ++和CodeBlocks完成了这个,但是现在我想尝试使用cmd在CodeBlocks中运行代码时输入函数,就像我输入边界一样,所以我不必编辑这行每次我想为不同的功能运行它时的代码。我意识到这需要实际使用这个输入(例如“sqrt(pow(x,2)-1)”)作为输入时代码的一部分,我真的不知道如何做到这一点,或者它是否是可能的,所以欢迎任何帮助。 这是处理函数的代码部分:
double Formula(double x)
{
double a;
a = sqrt(x);
return a;
}
答案 0 :(得分:1)
如果你想评估像" sqrt(pow(x,2)-1)"这样的表达式,你必须:
例如,如果你有" sqrt(pow(x,2)-1)"在输入中,AST可以表示如下:
您必须定义用于表示AST的结构。
然后,要解析查询字符串,您有两个选择:
如果您只有一个小项目要做,您可能必须尝试自己解析输入以生成AST。
如果项目是一个编译项目,你应该使用bison + flex,它们就是为此做的(但需要时间来使用!)。
答案 1 :(得分:1)
或者,与脚本语言集成,使其进行函数解析和评估。但它会慢得多。
JavaScript解释器遍布各处。 Python也很受欢迎。有些人喜欢Lua。