离散数学实验一:命题逻辑(1).

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的输入是否正确

相关文档
最新文档