二元关系的判断和运算,图论运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学计算机科学与工程学院(实验)课程名称关系与图论实验
电子科技大学教务处制表
电子科技大学
实验报告
实验地点
实验时间:
一、实验室名称:计算机学院计算机机房
二、实验项目名称:二元关系的判断和运算,图论运算
三、实验学时:4学时
四、实验原理:
第一题:数组循环赋值,布尔积计算,邻接矩阵的运用,Break循环跳出,
判断及输出;
第二题:switch和case输出衣物的名称,利用矩阵存储的顺序,设定衣物
穿着顺序。
五、实验目的:用编程实现矩阵的性质判断,布尔积运算,正确运用深度分析和广度分析。
六、实验内容:实验问题一
#include
void main()
{
int x,y,z,flag;
int R[9][9],int R1[9][9],int R2[9][9],Rb[9][9];
for (x=1;x<9;x++)
for (y=1;y<9;y++)
{
if(((x-y+3)%4==0)||((x-y+3)%3==0))
R[x][y]=1;
else
R[x][y]=0;
}
printf("二元关系R为\n");
for (x=1;x<9;x++)
for (y=1;y<9;y++)
if(R[x][y]==1)
printf("(%d,%d)\t",x,y);
printf("\n\nR的邻接矩阵为:\n");
printf("R\t");
for (x=1;x<9;x++)
printf("%d\t",x);
for (x=1;x<9;x++)
{
printf("\n%d\t",x);
for (y=1;y<9;y++)
printf("%d\t",R[x][y]);
}
printf("\n\n");
flag=0;
for (x=1;x<9;x++)
if(R[x][x]==0)
{
flag=1;
printf("(%d,%d)",x,x);
}
if(flag==1)
printf("R不是自反的");
else
printf("R是自反的");
printf("\n");
flag=0;
for (x=1;x<9;x++)
{
for (y=1;y<9;y++)
{
if(R[x][y]!=R[y][x])
{
flag=1;
printf("因为(%d,%d)!=(%d,%d),",x,y,y,x);
}
if(flag==1)
break;
}
if(flag==1)
break;
}
if(flag==1)
printf("所以R不是对称的");
else
printf("R是对称的");
printf("\n");
flag=0;
for (x=1;x<9;x++)
{
for (y=1;y<9;y++)
{
for (z=1;z<9;z++)
{
if((R[x][y]==1)&&(R[y][z]==1))
{
if(R[x][z]!=1)
{
flag=1;
printf("因为(%d,%d)=1,且(%d,%d)=1,但是(%d,%d)!=1,",x,y,y,z,x,z);
}
}
if(flag==1)
break;
}
if(flag==1)
break;
}
if(flag==1)
break;
}
if(flag==1)
printf("所以R不是传递的");
else
printf("R是传递的");
printf("\n\n\n\n");
for (x=1;x<9;x++)
for (y=1;y<9;y++)
{
if((x-y)%4==0)
R1[x][y]=1;
else
R1[x][y]=0;
}
printf("二元关系R1为\n");
for (x=1;x<9;x++)
for (y=1;y<9;y++)
if(R1[x][y]==1)
printf("(%d,%d)\t",x,y);
printf("\n\nR1的邻接矩阵为:\n"); printf("R1\t");
for (x=1;x<9;x++)
printf("%d\t",x);
for (x=1;x<9;x++)
{
printf("\n%d\t",x);
for (y=1;y<9;y++)
printf("%d\t",R1[x][y]);
}
printf("\n\n\n\n");
for (x=1;x<9;x++)
for (y=1;y<9;y++)
{
if((x-y)%3==0)
R2[x][y]=1;
else
R2[x][y]=0;
}
printf("二元关系R2为\n");
for (x=1;x<9;x++)
for (y=1;y<9;y++)
if(R2[x][y]==1)
printf("(%d,%d)\t",x,y); printf("\n\nR2的邻接矩阵为:\n");