编写一个计算机程序,用于计算给定公式的真值表 c++
时间: 2024-10-27 12:10:56 浏览: 11
编写一个计算机程序来计算逻辑公式(如布尔表达式)的真值表,通常涉及到遍历所有可能的输入变量组合,并评估每个组合下的结果。这里是一个简单的C++示例,使用数组和循环来创建真值表,假设我们只考虑两个输入变量A和B:
```cpp
#include <iostream>
using namespace std;
// 定义函数来计算给定逻辑运算的结果
bool calculateResult(char op, bool var1, bool var2) {
switch (op) {
case 'N': // NOT运算
return !var1;
case 'A': // AND运算
return var1 && var2;
case 'O': // OR运算
return var1 || var2;
case 'X': // XOR运算
return var1 != var2;
default:
throw invalid_argument("Invalid operator");
}
}
int main() {
const int numVariables = 2; // 我们只有两个变量A和B
char operators[] = {'N', 'A', 'O', 'X'}; // 支持的四种基本逻辑运算
bool variables[numVariables][2]; // 创建一个二维数组存储变量的所有可能状态
for (bool* row : variables) { // 遍历每一行
for (int i = 0; i < numVariables; ++i) {
row[i] = (i == 0); // 初始设置第一个变量为True,第二个为False
}
cout << "Input Variables A (" << row[0] << ") and B (" << row[1] << "):" << endl;
for (char op : operators) { // 对于每个运算符
cout << "Operator: " << op << ", Result: " << calculateResult(op, row[0], row[1]) << endl;
}
cout << "\n";
}
return 0;
}
```
在这个程序中,用户可以调整`numVariables`和`operators`数组以适应更多或更复杂的逻辑运算。运行这个程序会生成每个输入组合对应的运算结果。
阅读全文