![]() |
1
3
如果它将被频繁使用并且将来会被扩展,我几乎建议您在代码中添加python或lua。 LUA 是一种非常轻量的脚本语言,您可以使用它并提供新的函数、运算符等。如果您想做更健壮和复杂的事情,请使用python。 |
![]() |
2
1
可以将公式表示为操作树和子表达式。您可能需要为操作类型和变量定义类型或常量。 然后,您可以很容易地编写一个在树中循环的方法,对传入的任何值应用适当的操作。 |
![]() |
3
1
为此构建自己的解析器应该是一个直接的操作: )将公式从中缀转换为后缀符号(典型的compsci赋值)(我将使用堆栈) )等待获取所需的值 )弹出中缀项的堆栈,在需要时删除变量的值 )显示结果 |
![]() |
4
0
|
![]() |
5
0
通常有两种方法可以实现,有三种可能的实现:
这里的第二个选项通常是通过编译一些可以作为插件加载的东西来完成的,或者它可以编译成一个单独的程序,然后被调用并生成必要的输出。 对于C++,我猜想一个用于评估的库可能存在于某处,所以我将从那里开始。 |
![]() |
6
0
如果你想自己写,可以搜索“形式自动机”和/或“有限状态机语法”。 一般来说,您将要做的是解析字符串,在堆栈上按字符。然后开始弹出字符,并根据弹出的内容执行任务。如果强制公式反转波兰符号,则更容易编写代码。 |
![]() |
7
0
为了让您的生活更轻松,我认为最好通过一个GUI来获得这种输入,在这个GUI中,用户可以输入的内容受到限制。 如果您打算从命令行(这是我从您的帖子中得到的印象)执行此操作,那么您可能应该定义一组严格的允许输入(例如,只有单个字母变量,没有空格,只有特定的数学符号:()+-*/等)。
然后,您需要:
|
![]() |
8
0
用 ANTLR 您可以创建一个解析器/编译器来解释用户输入,然后使用访问者模式执行计算。 A good example is here 但它在C中。你应该能够快速适应你的需求,并继续使用C++作为你的开发平台。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |