首页 / 知识
计算用户定义的公式(使用C ++)
2023-04-13 05:48:00

calculating user defined formulas (with c++)
我们希望在我们的c ++程序中有用户定义的公式。 有什么想法/提示如何做这样的事情? 到目前为止,我只是来到解决方案中,编写了一个解析器来计算这些公式-也许对此有什么想法? 如果它会经常使用并且将来会扩展,我几乎建议您将Python或Lua添加到您的代码中。 Lua是一种非常轻量级的脚本语言,您可以将其插入并提供新功能,运算符等。如果您想做更健壮和复杂的事情,请改用Python。 为此,构建自己的解析器应该是直接的操作:
)将方程式从中缀转换为后缀表示法(典型的compsci分配)(我将使用堆栈) 您可以将公式表示为操作和子表达式的树。您可能需要为操作类型和变量定义类型或常量。 然后,您可以轻松地编写一种遍历树的方法,将适当的操作应用于您传入的任何值。 使用ANTLR,您可以创建解析器/编译器来解释用户输入,然后使用Visitor模式执行计算。一个很好的例子在这里,但是在C#中。您应该能够使其迅速适应您的需求,并继续使用C ++作为开发平台。 为了使您的生活更轻松,我认为最好通过GUI来完成这种输入,在GUI中,用户只能输入内容。 如果您打算从命令行执行此操作(这就是我从您的帖子中获得的印象),那么您可能应该定义一组严格的允许输入(例如,仅单字母变量,无空格和某些数学符号:( )+-* /等。
然后,您将需要: 如果要编写自己的内容,请搜索"形式自动机"和/或"有限状态机语法" 通常,您将要做的是解析字符串,然后将字符推入堆栈中。然后开始弹出字符并根据弹出的内容执行任务。如果您将方程式强制设为反抛光符号,则编码起来会更容易。 通常有两种方法可以实现,并有三种可能的实现方式: 通常,这里的第二个选项是通过编译可以作为一种插件加载的东西来完成的,或者可以将其编译成一个单独的程序,然后调用该程序并产生必要的输出。 对于C ++,我猜想用于评估的库可能存在于某个地方,所以这就是我的起点。 使用Spirit(例如)进行解析(以及它提供的``语义动作''来构造一个表达式树,然后可以对其进行操作(例如评估))似乎是一个非常简单的解决方案。例如,如果需要,您可以在那里找到算术表达式的语法((很简单地提出自己的语法)。 注意:Spirit很容易学习,并且非常适合此类任务。 |
最新内容
相关内容
怎样用python计算矩阵乘法?
怎样用python计算矩阵乘法?,位置,矩阵,培训,一致,乘法,数组,函数,示例,作用,标量,python中计算矩阵乘法的方法:1、使用np.multiply()函数计算Python中怎么计算圆周长?
Python中怎么计算圆周长?,公式,培训,圆周,半径,浮点,以上,结果,更多,内容,python中怎么计算圆周长呢?1、首先输入圆的半径2、其次将输入的半怎么计算python程序运行时间
怎么计算python程序运行时间,时间,培训,程序,方式,脚本,下面,以上,两个,结束,不是,python脚本使用统计时间的方式是time.clock(),而这种方式统python如何计算程序运算时间
python如何计算程序运算时间,时间,系统,单位,培训,程序,方法,浮点,以来,类型,纪元,python计算程序运算时间的方法:方法1:importdatetimestarttipython怎么定义用户输入
python怎么定义用户输入,培训,字符串,整数,类型,用户,文本,定义,文档,小数点,位数,python中获取用户输入的方法如下:整数输入#!/usr/bin/pythopython怎样计算函数的返回值
python怎样计算函数的返回值,做多,培训,函数,语句,变量,赋值,参数,结果,实际,以上,python中,用def语句创建函数时,可以用return语句指定应该返python中如何定义int类型
python中如何定义int类型,标准,数字,数据,培训,基础,整数,数据类型,赋值,布尔,类型,标准数据类型python3中有六个标准的数据类型:Number(数字)python怎么定义函数的返回值
python怎么定义函数的返回值,培训,代码,简介,函数,语句,定义,类型,结束,结果,上面,python定义函数的返回值的方法:函数返回值简介函数需要先定python怎样计算输入的字符串的长度
python怎样计算输入的字符串的长度,培训,字符串,长度,字典,函数,列表,空格,语法,字符,实例,python中的字符串。可以使用len()函数来计算长度,python如何定义函数
python如何定义函数,培训,概念,代码,环境,函数,定义,语句,括号,结果,冒号,函数的概念:函数是组织好的、具有一定功能的代码片段。在Python中,定pythonreturn如何定义
pythonreturn如何定义,培训,函数,定义,字符串,数值,使用说明,语句,对象,以上,存在,在定义函数时,对于return的使用return语句是python语言中函python如何定义接受参数的函数
python如何定义接受参数的函数,信息,培训,位置,参数,函数,列子,效果,定义,更多,内容,python中的函数可以有参数,也可以无参数,参数可以分为默认