最新离散数学集合运算C++或C语言实验报告.docx
- 文档编号:5070491
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:8
- 大小:115.82KB
最新离散数学集合运算C++或C语言实验报告.docx
《最新离散数学集合运算C++或C语言实验报告.docx》由会员分享,可在线阅读,更多相关《最新离散数学集合运算C++或C语言实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
最新离散数学集合运算C++或C语言实验报告
离散数学实验报告
专业班级:
12级计算机本部一班姓名:
鲍佳珍
学号:
***************实验成绩:
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的子集。
以下每一个运算都要求先将集合C置成空集。
(2)二个集合的交运算:
A⋂B={x|x∈A且x∈B}
把数组A中元素逐一与数组B中的元素进行比较,将相同的元素放在数组C中,数组C便是集合A和集合B的交。
C语言算法:
for(i=0;i for(j=0;j if(a[i]==b[j])c[k++]=a[i]; (3)二个集合的并运算: A⋃B={x|x∈A或x∈B} 把数组A中各个元素先保存在数组C中。 将数组B中的元素逐一与数组A中的元素进行比较,把不相同的元素添加到数组C中,数组C便是集合A和集合B的并。 C语言算法: for(i=0;i c[i]=a[i]; for(i=0;i { for(j=0;j if(b[i]==c[j])break; if(j==m){c[m+k]=b[i];k++;} } (4)二个集合的差运算: A-B={x|x∈A且x∉B} 将数组A中的元素逐一与数组B中的元素进行比较,把数组A与数组B不同的元素保存在数组C中,数组C便是集合A和集合B的差A-B。 C语言算法: for(j=0;j {for(i=0;i {if(A[j]==B[i]) {C[k]=A[j]; k++; break;} if(j==n) {C[k]=A[i]; k++;}} (5)集合的补运算: ~A=B-A={x|x∈B且x∉A} 将数组E中的元素逐一与数组A中的元素进行比较,把不相同的元素保存到数组C中,数组C便是集合A关于集合E的补集。 求补集是一种特殊的集合差运算。 C语言算法: k=0; for(i=0;i {for(j=0;j {if(B[i]==A[j]) break;} if(j==N) {C[k]=B[i]; k++;} 6.【源程序(带注释)】 #include intmain(){ inta[80],b[80],c[80],e[80]; intm,n,k,l,i,j,p,q,o; l=1; while(l){ printf("###欢迎使用集合运算软件###\n"); printf("#请输入您要输入的A数组内存放的数字的数目: "); scanf("%d",&m);//输入一个数组内需要存放的数字的数目 printf("#请输入集合A中的元素: "); scanf("%d",&a[0]); for(i=1;i scanf("%d",&a[i]); for(j=0;j if(a[i]==a[j]){ printf("#您的输入有误! 集合中的元素不能相同! \n"); printf("#请重新输入: "); for(i=0;i scanf("%d",&a[i]); }//判断数组内是否存在重复的数字,若有,能重新输入 } printf("#请输入您要输入的B数组内存放的数字的数目: "); scanf("%d",&n); printf("#请输入集合B中的元素: "); scanf("%d",&b[0]); for(i=1;i scanf("%d",&b[i]); for(j=0;j if(b[i]==b[j]){ printf("#您的输入有误! 集合中的元素不能相同! \n"); printf("#请重新输入: ");//重新输入集合B for(i=0;i scanf("%d",&b[i]); } } printf("#请输入您要输入的E数组内存放的数字的数目: ");//输入B集合的元素数 scanf("%d",&o); printf("#请输入集合E中的元素: "); scanf("%d",&e[0]); for(i=1;i scanf("%d",&e[i]); for(j=0;j if(e[i]==e[j]){ printf("#您的输入有误! 集合中的元素不能相同! \n"); printf("#请重新输入: ");//重新输入集合E for(i=0;i scanf("%d",&e[i]); } } k=0; for(i=0;i for(j=0;j if(a[i]==b[j]) c[k++]=a[i]; } p=k; printf("#A数组与B数组的交集为{"); for(k=0;k printf("%d",c[k]); printf("}\n");//交集的代码 k=0; for(q=0;q c[q]=0;//将C数组置空 for(i=0;i c[k]=a[i]; k++; } for(i=0;i for(j=0;j if(b[i]==c[j])break; if(j==k-1){ c[k]=b[i]; k++;} }//并集的代码 p=k;//确定C数组当前的数目,便于下一次置空 printf("#A数组与B数组的并集为{"); for(k=0;k printf("%d",c[k]); printf("}\n"); k=0; for(q=0;q c[q]=0; for(j=0;j for(i=0;i if(a[j]==b[i]) break; if(j==n-1) { c[k]=a[i]; k++; }//差运算的代码 } p=k; printf("#A数组与B数组的差运算集为{"); for(k=0;k printf("%d",c[k]); printf("}\n"); k=0; for(q=0;q c[q]=0; for(i=0;i for(j=0;j { if(e[i]==a[j]) break; if(j==m-1) { c[k]=e[i]; k++; } }//补运算的代码 p=k; printf("#A数组与B数组的补运算集为{"); for(k=0;k printf("%d",c[k]); printf("}\n\n"); printf("#您是否还想继续计算。 是请输入1,否请输入0\n"); scanf("%d",&l); 加拿大beadworks公司就是根据年轻女性要充分展现自己个性的需求,将世界各地的珠类饰品汇集于“碧芝自制饰品店”内,由消费者自选、自组、自制,这样就能在每个消费者亲手制作、充分发挥她们的艺术想像力的基础上,创作出作品,达到展现个性的效果。 }//while语句判断是否继续 printf("\n\n欢迎使用,再见! \n"); 培养动手能力□学一门手艺□打发时间□兴趣爱好□return0; 可是创业不是一朝一夕的事,在创业过程中会遇到很多令人难以想象的疑难杂症,对我们这些80年代出生的温室小花朵来说,更是难上加难。 } 7. 8.(4)信息技术优势【实验结果与分析总结(含运行结果截图)】 输入界面 输入各数组并输出结果 (3)个性体现 “碧芝自制饰品店”拥有丰富的不可替代的异国风采和吸引人的魅力,理由是如此的简单: 世界是每一个国家和民族都有自己的饰品文化,将其汇集进行再组合可以无穷繁衍。 是否继续查找 (一)上海的经济环境对饰品消费的影响 喜欢□一般□不喜欢□继续查找,数组重复并重新输入 我们长期呆在校园里,没有工作收入一直都是靠父母生活,在资金方面会表现的比较棘手。 不过,对我们的小店来说还好,因为我们不需要太多的投资。 结束使用 (1)专业知识限制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 离散数学 集合 运算 C+ 语言 实验 报告