实验一 真值计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一真值计算
一、实验目的
熟悉联结词合取、析取、条件和双条件的概念,编程求其真值。
二、实验内容
从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真值。用C语言实现。
三、实验报告要求
列出实验目的、实验内容、实验步骤、源程序和实验结果。
实验二关系闭包计算
一、实验目的
熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。二、二、实验内容
从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包传递闭包要求使用两种算法,即R+和Warshall算法。用C语言实现。
二、实验报告要求
列出实验目的、实验内容、实验步骤、源程序和实验结果。
#include
int main()
{
int i,j,k,n;
static int str[122],zifan[122],chuandi[122],duich[122];
printf("Please input the jie:\n");
scanf("%d",&n);
printf("A=%d\n",n);
for(i=0;i { scanf("%d",&str[i]); } printf("The shu zu is:\n"); for(j=0;j { printf("%4d",str[j]); if((j+1)%n==0) printf("\n"); } for(j=0;j { zifan[j]=str[j]; chuandi[j]=str[j]; duich[j]=str[j]; } printf("The zifan bibao is:\n"); for(i=0;i { if(i%(n+1)==0) zifan[i]=zifan[i]||1; printf("%4d",zifan[i]); if((i+1)%n==0) printf("\n"); } printf("The duich bibao is:\n"); for(i=0,j=0;i { if(i>j*(n+1)&&i<(j+1)*n) { duich[i]=duich[(i-j*(n+1))*(n-1)+i]||duich[i]; duich[(i-j*(n+1))*(n-1)+i]=duich[(i-j*(n+1))*(n-1)+i]||duich[i]; } else if(i>=(j+1)*n) j++; } for(i=0;i { printf("%4d",duich[i]); if((i+1)%n==0) printf("\n"); } printf("The chuandi bibao is:\n"); for(i=0;i for(j=0;j if(chuandi[j*n+i]) {for(k=0;k chuandi[j*n+k]=chuandi[j*n+k]||chuandi[i*n+k]; } for(i=0;i { printf("%4d",chuandi[i]); if((i+1)%n==0) printf("\n"); } return 0; } 实验三计算两结点间长度为m的路的数目 一、实验目的 熟悉邻接矩阵和两结点间长度为m的路的数目的关系并编程计算。 二、实验内容 从键盘输入图的邻接矩阵和一正整数m,计算结点两两之间长度为m的路的数目。考虑有向图和无向图。用C语言实现。实现可达性矩阵。 三、实验报告要求 列出实验目的、实验内容、实验步骤、源程序和实验结果。 #include class luchang { private: int N; int **p; public: luchang(int n); ~luchang(); int input(); luchang &operator =(luchang &A); luchang &mul(luchang &A,luchang &B); void disply(); int disply(int M); }; luchang::luchang(int n) { N=n; int i; p=new int*[N]; for (i=0;i p[i]=new int[N]; } luchang::~luchang() { int i; for (i=0;i delete p[i]; delete p; } int luchang::input() {