离散数学集合运算C++或C语言实验报告_第1页
离散数学集合运算C++或C语言实验报告_第2页
离散数学集合运算C++或C语言实验报告_第3页
离散数学集合运算C++或C语言实验报告_第4页
离散数学集合运算C++或C语言实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、离散数学实验报告专业班级:12级计算机本部一班 姓名:鲍佳珍 学号: 201212201401016 实验成绩:1【实验题目】命题逻辑实验四2【实验目的】 掌握用计算机求集合的交、并、差和补运算的方法。3【实验内容】编程实现集合的交、并、差和补运算。4、【实验要求】c或c语言编程实现5. 【算法描述】(1)用数组a,b,c,e表示集合。假定a=1,3,4,5,6,7,9,10,b=2,,3,4,7,8,10, e=1,2,3,4,5,6,7,8,9,10,输入数组a,b,e(全集),输入数据时要求检查数据是否重复(集合中的数据要求不重复),要求集合a,b是集合e的子集。以下每一个运算都要求先将

2、集合c置成空集。(2)二个集合的交运算:ab=x|xa且xb把数组a中元素逐一与数组b中的元素进行比较,将相同的元素放在数组c中,数组c便是集合a和集合b的交。c语言算法:for(i=0;im;i+)for(j=0;jn;j+)if(ai= =bj) ck+=ai;(3)二个集合的并运算:ab=x|xa或xb把数组a中各个元素先保存在数组c中。将数组b中的元素逐一与数组a中的元素进行比较,把不相同的元素添加到数组c中,数组c便是集合a和集合b的并。c语言算法:for(i=0;im;i+)ci=ai;for(i=0;in;i+)for(j=0;jm;j+)if(bi= =cj) break;if

3、(j= =m) cm+k=bi;k+;(4)二个集合的差运算:a-b=x|xa且xb将数组a中的元素逐一与数组b中的元素进行比较,把数组a与数组b不同的元素保存在数组c中,数组c便是集合a和集合b的差a-b。c语言算法:for (j=0;jm;j+)for (i=0;in;i+)if (aj= =bi)ck=aj;k+;break;if (j= =n) ck=ai; k+;(5)集合的补运算: a=b-a=x|xb且xa将数组e中的元素逐一与数组a中的元素进行比较,把不相同的元素保存到数组c中,数组c便是集合a关于集合e的补集。求补集是一种特殊的集合差运算。c语言算法:k=0;for (i=0

4、;im;i+)for (j=0;jn;j+)if (bi= =aj)break; if (j=n)ck=bi; k+;6. 【源程序(带注释)】#includeint main()int a80,b80,c80,e80;int m,n,k,l,i,j,p,q,o;l=1;while(l)printf( #欢迎使用集合运算软件#n);printf(#请输入您要输入的a数组内存放的数字的数目:);scanf(%d,&m); /输入一个数组内需要存放的数字的数目printf(#请输入集合a中的元素:);scanf(%d,&a0);for(i=1;im;i+)scanf(%d,&ai);for(j=0

5、;ji;j+)if(ai=aj)printf(#您的输入有误!集合中的元素不能相同!n);printf(#请重新输入:); for(i=0;im;i+)scanf(%d,&ai); /判断数组内是否存在重复的数字,若有,能重新输入printf(#请输入您要输入的b数组内存放的数字的数目:);scanf(%d,&n);printf(#请输入集合b中的元素:);scanf(%d,&b0);for(i=1;in;i+)scanf(%d,&bi);for(j=0;ji;j+)if(bi=bj)printf(#您的输入有误!集合中的元素不能相同!n);printf(#请重新输入:); /重新输入集合bf

6、or(i=0;in;i+)scanf(%d,&bi);printf(#请输入您要输入的e数组内存放的数字的数目:); /输入b集合的元素数scanf(%d,&o);printf(#请输入集合e中的元素:);scanf(%d,&e0);for(i=1;io;i+)scanf(%d,&ei);for(j=0;ji;j+)if(ei=ej)printf(#您的输入有误!集合中的元素不能相同!n);printf(#请重新输入:); /重新输入集合efor(i=0;io;i+)scanf(%d,&ei);k=0;for(i=0;im;i+)for(j=0;jn;j+)if(ai=bj)ck+=ai;p=

7、k;printf(#a数组与b数组的交集为);for(k=0;kp;k+)printf(%d ,ck);printf(n); /交集的代码k=0;for(q=0;qp;q+)cq=0; /将c数组置空for(i=0;im;i+)ck=ai;k+; for(i=0;in;i+)for(j=0;jk;j+)if(bi=cj) break;if(j=k-1)ck=bi;k+; /并集的代码p=k; /确定c数组当前的数目,便于下一次置空printf(#a数组与b数组的并集为);for(k=0;kp;k+)printf(%d ,ck);printf(n);k=0;for(q=0;qp;q+)cq=0;

8、for(j=0;jm;j+)for (i=0;in;i+)if (aj=bi)break;if(j=n-1) ck=ai;k+; /差运算的代码p=k;printf(#a数组与b数组的差运算集为);for(k=0;kp;k+)printf(%d ,ck);printf(n);k=0;for(q=0;qp;q+)cq=0;for (i=0;io;i+)for (j=0;jm;j+)if (ei=aj)break; if (j=m-1)ck=ei;k+; /补运算的代码p=k;printf(#a数组与b数组的补运算集为);for(k=0;kp;k+)printf(%d ,ck);printf(nn);printf(#您是否还想继续计算。是请输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论