我怎样才能在 turbo c 中创建一个 truth table
how can I create a truth table in turbo c
我有一个项目,我将在其中创建一个真值 table,用户将输入命题及其运算符,我的程序将输出提供真值的真值 table。
我有以下问题:
- 我可以使用 turbo c 的解析技术吗?
- 我应该如何在 Turbo C 中解析这个表达式?前任。 (p ^ q) -> r
- 一旦我解析了表达式,我应该如何生成真相 table?表达式的每个部分都需要分成其最小的组件,并从 table 的左侧到右侧重新构建。我将如何评价这样的事情?
任何人都可以向我提供有关解析这些任意表达式并最终评估已解析表达式的提示(或链接)吗?
让我试着回答你的问题。
- 是的。你没有理由做不到。
- 您需要编写某种词法分析器将表达式转换为记号。然后您可以使用 shunting yard algorithm 将表达式转换为您可以轻松计算的内容。
- 使用 (2) 的结果并在小型堆栈计算机中对其进行计算。将每个自由变量设置为所有可能的组合以生成一个真值 table.
一般情况下无法解析任意语言。在 Dragon Book(编译器:原理、技术和工具)中可以找到对编译器构造(这是您感兴趣的子领域)的一个很好的介绍。这是一个很大的领域,我建议你学习编译器构造class。
此外,考虑放弃 Turbo C 以换取最近的东西。 Turbo C 很古老,充满了怪癖。
我有一个项目,我将在其中创建一个真值 table,用户将输入命题及其运算符,我的程序将输出提供真值的真值 table。
我有以下问题:
- 我可以使用 turbo c 的解析技术吗?
- 我应该如何在 Turbo C 中解析这个表达式?前任。 (p ^ q) -> r
- 一旦我解析了表达式,我应该如何生成真相 table?表达式的每个部分都需要分成其最小的组件,并从 table 的左侧到右侧重新构建。我将如何评价这样的事情?
任何人都可以向我提供有关解析这些任意表达式并最终评估已解析表达式的提示(或链接)吗?
让我试着回答你的问题。
- 是的。你没有理由做不到。
- 您需要编写某种词法分析器将表达式转换为记号。然后您可以使用 shunting yard algorithm 将表达式转换为您可以轻松计算的内容。
- 使用 (2) 的结果并在小型堆栈计算机中对其进行计算。将每个自由变量设置为所有可能的组合以生成一个真值 table.
一般情况下无法解析任意语言。在 Dragon Book(编译器:原理、技术和工具)中可以找到对编译器构造(这是您感兴趣的子领域)的一个很好的介绍。这是一个很大的领域,我建议你学习编译器构造class。
此外,考虑放弃 Turbo C 以换取最近的东西。 Turbo C 很古老,充满了怪癖。