ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:276.11KB ,
资源ID:5618896      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5618896.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(湖南大学离散数学程序设计题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

湖南大学离散数学程序设计题.docx

1、湖南大学离散数学程序设计题程序设计题2010年语言不限,显示方式中的表格线可以不出现,但要显示为表格的样子,到底做哪道题,在上机时由老师宣布或抽签决定。1、自动生成真值表2、判断两个公式是否等值3、生成主析取、主合取范式4、判断一个公式是否合法已给出了基本方法,判断过程中也给出判断过程。5、集合运算6、关系矩阵与关系的复合说明二个序偶之间用分号(;)分隔。“关系一的矩阵”是指给出关系一的关系矩阵。直接利用序偶进行复合,得到其关系的复合7、求关系的自反与对称闭包关系的自反闭包关系的对称闭包8、利用矩阵求其关系的复合与传递闭包9、判断运算是否可结合10、判断运算一对运算二是否可分分配11、判断两个

2、代数是否同构/1.1自动生成真值表#include#includeusing namespace std;class Gongshi/得到任意公式真值表的类private: string yuanshimingti;/用来保存输入的原始公式。 string guodu;/过渡用的字符串。 string zuijian;/保存命题变元的字符串。 int num;/原子命题个数public: Gongshi(string a)/构造函数 yuanshimingti=a; guodu=00000000000000000000;/初始化为0000.为了更好的储存数据 zuijian=000000000

3、00000000000; huoquzimu();/调用设置函数 void huoquzimu()/得到原子命题的函数 int k=0; for(int i=0;yuanshimingtii!=0;i+) if(yuanshimingtii=a)&(yuanshimingtii=z)/原子命题必须是小写字母 guoduk=yuanshimingtii; k+; guoduk=0;/字符串结束符 setguodu();/调用函数,去掉重复的 void setguodu()/化简所得到的命题变元,去掉重复的。 int k=1; zuijian0=guodu0; for(int i=1;guodui

4、!=0;i+) if(jianyan(guodui,i) zuijiank=guodui; k+; guoduk=0; num=k;/记下命题变元的个数 bool jianyan(char a,int n)/检验是否重复的子函数 for(int i=0;in;i+) if(a=zuijiani) return 0; return 1; void operator1()/主操作函数1 for(int i=0;inum;i+)/输出第一行不变的格式 coutzuijiani ; coutyuanshimingti 真值endl; int a=1;/用来储存一共有多少种解释。 for(i=0;inu

5、m;i+) a=a*2; /分2num种情况,来解释真值表 int b=0,c10=0,0,0,0,0,0,0,0,0,0; for(i=0;ia;i+) int d=b; for(int j=0;j-1;j-) coutcj ; b+; string cc=0000000000; for(j=0;jnum;j+) if(cj=1) ccj=1; else ccj=0; string aa; aa=yuanshimingti; /通过双重循环,用0/1来替代命题变员 for(int k=0;knum;k+)/变员 for(int j=0;aaj!=0;j+)/原始公式 if(aaj=zuiji

6、ank) aaj=ccnum-k-1; coutaa operator2(aa); coutn; char operator2(string chushi)/操作函数2,得到某种解释下真值表的值,主要思路:从前到后,从外到里! /第一步,先找到和计算出最外面的括号! int a,b=0,k=0; for(int i=0;chushii-1!=)&chushii!=0;i+) if(chushii=) b=i; for(i=0;chushii!=)&chushii!=0;i+) if(chushii=() a=i; if(b!=0) for(i=a+1;ib;i+) guoduk=chushii

7、; k+; guoduk=0; char t; t=operator2(guodu); chushia=t; int z=a+1; for(k=b+1;chushik-1!=0;k+) chushiz=chushik; z+; return operator2(chushi); /第二步再去掉否定 for(i=0;chushii!=0;i+) if(chushii=!) if(chushii+1=1) chushii+1=0; else chushii+1=1; int z=i; for(k=z+1;chushik-1!=0;k+) chushiz=chushik; z+; /第三步直接计算真

8、值 char c=1; for(i=0;chushii!=0;i+) if(chushii=+) if(chushii-1=1)|(chushii+1=1) chushii+1=1; else chushii+1=0; if(chushii=) if(chushii-1=1)&(chushii+1=1) chushii+1=1; else chushii+1=0; if(chushii+1!=0) c=chushii+1; return c; ;int main() string a1;/用来接收输入的字符串 cout(合取用代替,析取用+代替,命题变元用小写字母)endl; couta1;

9、coutendl; Gongshi gongshi1(a1);/初始化一个类的对象. gongshi1.operator1();/调用该类的主操作函数,实现目的. return 0;/1.2判断两个公式是否等值#include#includeusing namespace std;class Gongshi/得到任意公式真值表的类private: string yuanshimingti;/用来保存输入的原始公式1。 string yuanshimingti2;/用来保存输入的原始公式2。 string guodu;/过渡用的字符串。 string zuijian;/保存命题变元的字符串。 s

10、tring guodu2;/过渡用的字符串2。 string zuijian2;/保存命题变元的字符串2。 int num;/公式1原子命题个数 int num2;/公式2原子命题个数public: Gongshi(string a,string b)/构造函数 yuanshimingti=a; yuanshimingti2=b; guodu=00000000000000000000;/初始化为0000.为了更好的储存数据 zuijian=00000000000000000000; guodu2=00000000000000000000; zuijian2=000000000000000000

11、00; huoquzimu1();/调用设置函数设置公式一 huoquzimu2();/调用设置函数设置公式二 /公式一 void huoquzimu1()/得到原子命题的函数 int k=0; for(int i=0;yuanshimingtii!=0;i+) if(yuanshimingtii=a)&(yuanshimingtii=a)&(yuanshimingti2i=z)/原子命题必须是小写字母 guodu2k=yuanshimingti2i; k+; guodu2k=0;/字符串结束符 setguodu2();/调用函数,去掉重复的 void setguodu2()/化简所得到的命题

12、变元,去掉重复的。 int k=1; zuijian20=guodu20; for(int i=1;guodu2i!=0;i+) if(jianyan(guodu2i,i) zuijian2k=guodu2i; k+; guodu2k=0; num2=k;/记下命题变元的个数 bool jianyan(char a,int n)/检验是否重复的子函数 for(int i=0;in;i+) if(a=zuijiani) return 0; return 1; void operator1()/主操作函数1 bool jz=1; for(int i=0;inum;i+)/输出第一行不变的格式 co

13、utzuijiani ; coutyuanshimingti 真值 yuanshimingti2 真值 相等吗?endl; int a=1;/用来储存一共有多少种解释。 for(i=0;inum;i+) a=a*2; /分2num种情况,来解释真值表 int b=0,c10=0,0,0,0,0,0,0,0,0,0; for(i=0;ia;i+) int d=b; for(int j=0;j-1;j-) coutcj ; b+; /公式一 string cc=0000000000; for(j=0;jnum;j+) if(cj=1) ccj=1; else ccj=0; string aa; a

14、a=yuanshimingti; /通过双重循环,用0/1来替代命题变员 for(int k=0;knum;k+)/变员 for(int j=0;aaj!=0;j+)/原始公式 if(aaj=zuijiank) aaj=ccnum-k-1; coutaa operator2(aa);/第一个公式 /公式二 cc=0000000000;/重新初始化 for(j=0;jnum;j+) if(cj=1) ccj=1; else ccj=0; string aa2; aa2=yuanshimingti2; /通过双重循环,用0/1来替代命题变员 for(k=0;knum;k+)/变员 for(int

15、j=0;aa2j!=0;j+)/原始公式 if(aa2j=zuijiank) aa2j=ccnum-k-1; cout aa2 operator2(aa2);/第二个公式 cout (operator2(aa2)=operator2(aa); if(operator2(aa2)!=operator2(aa) jz=0; coutn; if(jz) cout 二个公式等值相等endl; else cout 二个公式不等值不相等endl; char operator2(string chushi)/操作函数2,得到某种解释下真值表的值,主要思路:从前到后,从外到里! /第一步,先找到和计算出最外面

16、的括号! int a,b=0,k=0; for(int i=0;chushii-1!=)&chushii!=0;i+) if(chushii=) b=i; for(i=0;chushii!=)&chushii!=0;i+) if(chushii=() a=i; if(b!=0) for(i=a+1;ib;i+) guoduk=chushii; k+; guoduk=0; char t; t=operator2(guodu); chushia=t; int z=a+1; for(k=b+1;chushik-1!=0;k+) chushiz=chushik; z+; return operator

17、2(chushi); /第二步再去掉否定 for(i=0;chushii!=0;i+) if(chushii=!) if(chushii+1=1) chushii+1=0; else chushii+1=1; int z=i; for(k=z+1;chushik-1!=0;k+) chushiz=chushik; z+; /第三步直接计算真值 char c=1; for(i=0;chushii!=0;i+) if(chushii=+) if(chushii-1=1)|(chushii+1=1) chushii+1=1; else chushii+1=0; if(chushii=) if(chu

18、shii-1=1)&(chushii+1=1) chushii+1=1; else chushii+1=0; if(chushii+1!=0) c=chushii+1; return c; ;int main() string a1,a2;/用来接收输入的字符串 cout(合取用代替,析取用+代替,命题变元用小写字母)endl; couta1; couta2; coutendl; Gongshi gongshi(a1,a2);/初始化一个类的对象. gongshi.operator1();/调用该类的主操作函数,实现目的. return 0;/1.3自动生成主析取范式和主合取范式#includ

19、e#includeusing namespace std;class Gongshi/得到任意公式真值表的类private: string yuanshimingti;/用来保存输入的原始公式。 string guodu;/过渡用的字符串。 string zuijian;/保存命题变元的字符串。 int num;/原子命题个数public: Gongshi(string a)/构造函数 yuanshimingti=a; guodu=00000000000000000000;/初始化为0000.为了更好的储存数据 zuijian=00000000000000000000; huoquzimu()

20、;/调用设置函数 void huoquzimu()/得到原子命题的函数 int k=0; for(int i=0;yuanshimingtii!=0;i+) if(yuanshimingtii=a)&(yuanshimingtii=z)/原子命题必须是小写字母 guoduk=yuanshimingtii; k+; guoduk=0;/字符串结束符 setguodu();/调用函数,去掉重复的 void setguodu()/化简所得到的命题变元,去掉重复的。 int k=1; zuijian0=guodu0; for(int i=1;guodui!=0;i+) if(jianyan(guodu

21、i,i) zuijiank=guodui; k+; guoduk=0; num=k;/记下命题变元的个数 bool jianyan(char a,int n)/检验是否重复的子函数 for(int i=0;in;i+) if(a=zuijiani) return 0; return 1; void operator1()/主操作函数1 int z=0,y=0; int true130,qq1=0; int false130,qq2=0; for(int i=0;inum;i+)/输出第一行不变的格式 coutzuijiani ; coutyuanshimingti 真值endl; int a=1;/用来储存一共有多少种解释。 for(i=0;inum;i+) a=a*2; /分2num种情况,来解释真值表 int b=0,c10=0,0,0,0,0,0,0,0,0,0; for(i=0;ia;i+) int d=b; for(int j=0;j-1;j-) coutcj ; b+; string cc=0000000000; for(j=0;jnum;j+) if(cj=1) ccj=1; else cc

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1