二元关系的判断和运算,图论运算

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

相关文档
最新文档