gpt4 book ai didi

c++ - 如何使输入成为我的代码的一部分?

转载 作者:行者123 更新时间:2023-11-28 02:14:22 25 4
gpt4 key购买 nike

所以我有这个数学项目,我必须编写一个程序来计算给定边界内给定函数的定积分。我已经使用 C++ 和 CodeBlocks 完成了此操作,但现在我想尝试在 CodeBlocks 中运行代码时使用 cmd 输入函数,就像输入边界一样,因此我不必编辑此行每次我想为不同的功能运行它时的代码。我意识到这需要在输入时实际使用这个输入(例如“sqrt(pow(x,2)-1)”)作为代码的一部分,我真的不知道该怎么做或者它是否是完全有可能,所以欢迎任何帮助。这是处理函数的代码部分:

double Formula(double x)
{
double a;
a = sqrt(x);
return a;
}

最佳答案

如果你想计算像“sqrt(pow(x,2)-1)”这样的表达式,你必须:

  1. 解析字符串并生成描述要执行的操作的 AST(抽象语法树)
  2. 在 AST 上使用评估函数

例如,如果您在输入中有“sqrt(pow(x,2)-1)”,则 AST 可以这样表示:

  • 函数 - sqrt
    • 函数 - 减法
      • 函数 - 战俘
        • 变量 - x
        • 整数 - 2
      • 整数 - -1

您必须定义将用于表示您的 AST 的结构。

然后,要解析查询字符串,您有 2 个选择:

  • 自己解析,计算括号等...
  • 使用工具生成解析器:yacc + lex 或 linux 下的 bison + flex。这些工具需要时间来适应。

如果您只有一个小项目要做,您可能必须尝试自己解析输入以生成 AST。

如果项目是编译项目,你应该使用bison + flex,它们正是为此而生的(但需要时间来适应!)。

关于c++ - 如何使输入成为我的代码的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34486249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com