将前提转变为代码?

时间:2017-10-12 22:55:01

标签: c++ boolean-logic discrete-mathematics

我有这个任务,要求我把一个前提声明变成代码。我的想法是,我需要打印真值表以获得前提声明。 这是前提:  (((P v Q)^(Q - > R))XOR(P v R)) - < - > (R ^ Q)

我可以创建一个手动真值表Truth Table for the above premise

我只是不明白如何将其转换为代码?我如何使用典型的基本库,如iostream,字符串,数学等来处理它。我不能利用任何其他东西,如矢量,集合等。

您不必编写文字代码,但也许某些伪代码可能有所帮助,甚至只是提示。

据我所知,“^”是&&,“v”是||,“ - >”是“if-else”,但我不确定“< - >”和“XOR”或简单地将其放在代码中。

提前致谢。

更新: 根据我的stackoverflow同伴的帮助,我们已经设法将每个逻辑运算符语句的字面含义转换为c ++方法。

(P v Q)   = P OR Q           = (P || Q)
(P ^ Q)   = P AND Q          = (P && Q)
(P XOR Q) = P ^ Q            = (P ^ Q)
(P -> Q)  = if P then Q      = (!P || Q)
(p <-> Q) = Only If P then Q = !(P ^ Q)

1 个答案:

答案 0 :(得分:1)

您可以(并且应该)使用布尔变量:

// declare variables and initialize.
bool p = true;
bool q = true;
bool r = true;
// Input values (from user or file)
//...

// Output some columns:
cout << p << " | " << q << " | " << r << " | ";
cout << (p || q) << " | ";
//...
cout << endl;