离散数学实验一:命题逻辑(1).
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
离散数学实验报告
1.【实验题目】
实验一命题逻辑(1)
2.【实验目的】
熟悉掌握命题逻辑中的联接词,实现二元合取、析取、蕴涵和等价表达式的计算,熟悉连接词逻辑运算规则,利用程序语言实现其逻辑运算。
3.【实验内容】
从键盘输入两个命题变元P和Q的真值,求它们的合取、析取、条件和双条件的真值。
4. 【实验要求】
通过以下界面提示实现相应逻辑运算,给出具体逻辑值
**************************************************************** 请输入变量命题P和Q的值(1或0):
请选择(1—5)要进行的逻辑运算:
1.合取运算(P∧Q)
2.析取运算(P∨Q)
3.条件运算(P→Q)
4.双条件运算(P←→Q)
5.继续/退出(y/n)
****************************************************************
5. 【算法描述】
1.合取运算(P∧Q),P、Q同真时为真,其余为假。
2.析取运算(P∨Q),P、Q同假时为假,其余为真。
3.条件运算(P→Q),P为真,Q为假时,为假,其余为真。
4.双条件运算(P←→Q),P、Q同真同假是为真。
6. 【源程序(带注释)】
#include
#include
using namespace std;
class math
{
char p,q;
int result;
public:
math(char x,char y);
int pdp(char x);
int pdq(char y);
hequ(char x,char y,int t);
xiqu(char x,char y,int t);
tiaojian(char x,char y,int t);
shuangtiaojian(char x,char y,int t);
caidan();
};
//判断p是否为1或0
int math::pdp(char x)
{
int a;
p=x;
if(x!='0'&&x!='1')
{
//cout<<"错误"< a=0; } cin.clear(); cin.sync(); return a; } //判断q是否为1或0 int math::pdq(char y) { q=y; int a; if(y!='0'&&y!='1') { //cout<<"错误"< a=0; } cin.clear(); cin.sync(); return a; } math::math(char x,char y) { p=x;q=y; /* if(x!='0'&&x!='1') { cout<<"错误"< } else if(y!='0'&&y!='1') { cout<<"错误"< } */ } //合取运算 math::hequ(char x,char y,int t) { p=x;q=y;result=t; if(x=='1'&&y=='1') t=1; else t=0; cout<<"真值为:"< //析取运算 math::xiqu(char x,char y,int t) { p=x;q=y;result=t; if(x=='0'&&y=='0') t=0; else t=1; cout<<"真值为:"< //条件运算 math::tiaojian(char x,char y,int t) { p=x;q=y;result=t; if(x=='1'&&y=='0') t=0; else t=1; cout<<"真值为:"< //双条件运算 math::shuangtiaojian(char x,char y,int t) { p=x;q=y;result=t; if(x=y) t=1; else t=0; cout<<"真值为:"< } //逻辑运算菜单 math::caidan() { cout<<"1. 合取运算(P∧Q)"< cout<<"2. 析取运算(P∨Q)"< cout<<"3. 条件运算(P→Q)"< cout<<"4. 双条件运算(P←→Q)"< cout<<"5. 退出/继续"< cout<<"请选择(1-5)要进行的逻辑运算:"; } void main() { char x='0',y='0',n,n2; int t; cout<<"请输入变量命题P和Q的值(1或0)"< math math1(x,y); loop: { cin.clear(); cin.sync(); //判断P、Q的输入是否正确