资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验一真值计算1、实验目的熟悉五个常用联结词合取、析取、条件和双条件的概念,掌握真值表技术。2、实验内容与要求定义1设P表示一个命题,由命题联结词和命题P连接成P,称r P为P的否定 式复合命题,P读“非P”。称I为否定联结词。P是真,当且仅当P为假;P是假, 当且仅当P为真。定义2 设P和Q为两个命题,由命题联结词八将P和Q连接成PAQ,称PAQ为命 题P和Q的合取式复合命题,PAQ读做“P与Q”,或“P且Q”。称八为合取联结词。当且 仅当P和Q的真值同为真,命题PAQ的真值才为真;否则,PAQ的真值为假。定义3 设P和Q为两个命题,由命题联结词V把P和Q连接成PVQ,称PVQ为命 题P和Q的析取式复合命题,PVQ读做“P或Q”。称/为析取联结词。当且仅当P和Q的 真值同为假,PVQ的真值为假;否则,PVQ的真值为真。定义4 设P和Q为两个命题,由命题联结词一把P和Q连接成P-Q,称P-Q为命 题P和Q的条件式复合命题,简称条件命题。P-Q读做“P条件Q”或者“若P则Q”。称 为条件联结词。当P的真值为真而Q的真值为假时,命题P-Q的真值为假;否则,P-Q 的真值为真。定义5令P、Q是两个命题,由命题联结词把P和Q连接成PoQ,称PoQ为 命题P和Q的双条件式复合命题,简称双条件命题,PQ读做“P当且仅当Q”,或“P等 价Q。称村为双条件联结词。当P和Q的真值相同时,P-Q的真值为真:否则,P0Q 的真值为假。本实验要求从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真 值。用C语言或MATLAB实现。3. 实验步骤:在输入P、Q真值后,会依次输出合取、析取、条件、双条件的真值。本实验源程序力求简洁易懂,所以在设计时应用简单的语句并省去了许多繁杂的选择, 如1与T、0与F的置换等。但本实验在操作易于理解方面也有很人的体现。4. 源程序:(1) 方法一:# iiicludevoid main(void)printf(“输入 P、Q 的真值(1 为 T, 0 为 F): n“);mt RQ;scanf(H%d&P);输入 P、Q 的值scanfC%cT;&Q);/求真值pmuff合取:%dirP&Q);pmirff 析取:dntP|Q);pmitf(”条件:dS”,!P|Q);pmHff 双条件:%dirP&Q+!P& !Q);(2) 方法二:# iiicludeusing namespace std;mt mam()char PQint i;cout请输入两个命题的真值(T/T):endl;fbr(i=l;i=4;i-H-)cmP;cmQ;双条件为THendl; 双条件为F-endl; 双条件为F-endl; 双条件为T-endl;if Fileslicrosoft Visual StudioMyPro jectssdf ieDebugsdf.p 件 、八0取取怡条输1合析条双pr0 10Q的真值1为T, 0为F::0any key to continue(2)方法二:-nixca E:C与C+Microsot Visual Studi oMyProjectsoikoyDebugoikoy.exe实验二关系闭包计算1、实验目的熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。2、实验内容与要求定义6设R是A上的二元关系,R的自反(对称、传递)闭包是关系R1,则 R1是自反的(对称的、传递的) RRl 对任何自反的(对称的、传递的)关系R2,若RcR2,则RlcR2oR的自反、对称和传递闭包分别记为r(R)、s(R)和t(R)o定理1令RcAxA,则 r(R)=RUIA s(R)=RUR(3) t(R)=RUR2UR3.WarshaU算法:设R是n个元素集合上的二元关系,M是R的关系矩阵;(1) 置新矩阵A:=M(2) 置 i:=l;(3) forj=l to n doif Aj j=l then dofor k=l to n doAj,k:=A|j,k+Ai.k(4) i=i+I;(5) if i=n then to (3)else stop本实验要求从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包, 计算传递闭包时使用Warshall算法。用C语言或MATLAB实现。3. 实验步骤:输入一个3*3维矩阵 由i(R)=RUIA; s(R)=RUR-l; t(R)=RUR2UR3列出的算 法计算自反、对称、传递闭包并输出。本实验源程序力求简洁易懂,所以在设计时应用简单的语句并省去了许多繁杂的选择, 且每步均有注释,使程序更清晰。但本实验在操作易于理解方面也有很人的体现。4 源程序: 熟悉Waishall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法 令RAXA,则r(R)=R UIAs(R)=RUR-lt(R)=RUR2UR3 */# iiicludevoid main(void)int ijjk;mt I习习=1,0,0,0,1,0,0,0,1;mt a3 3,b33,c33;pnntfCiW 输入 3x3 的二维矩阵: for(i=0;i3;i+)输入矩阵for(j=0j3j+)scanfC%d”,&aij);pnntf(-S 反闭包:nM); for(i=0;K3;i+)自反闭包for(j=0j3j+)printf(”3d,bij);prmtf(nnH);pmuff对称闭包:nM); for(i=0;i3;i+)对称闭包for(j=0j3j+) cij=aij|a|ji; priiitf(M%3d-,cij);prmtf(nnH);pmirff传递闭包:nM);for(i=0;i3;i+)传递闭包for(j=0j3j+)if(aji=l)for(k=0;k3;k+)for(i=0;i3;i+)传递闭包的输出for(j=0j3j+) pnntf(%3d”,aij);pnngn”);5.实验结果:cT E:C与C+Microsot Visual StudioMyFrojectserdcxDebugerdcx.exe:1 03”/0 10闭;0闭 10 lffll01010 110 11 : 1 1 0 : 1111111ress any key to continue实验三计算两结点间长度为m的路的数目1、实验目的熟悉邻接矩阵和两结点间长度为m的路的数目的关系并编程计算。2、实验内容与要求定义7给定简单图G=, V=V, v2,vn, V中的结点按下标由小到大编序,则n阶方阵A=(aJ称为图G的邻接矩阵。其中V.定理2设A为简单图G的邻接矩阵,则A中的1行j列元素3有等于G中联结 到的长度为m的链(或路)的数目。本实验要求从键盘输入图的邻接矩阵和一正整数m,计算结点两两之间长度为m的路 的数目。考虑有向图和无向图。用C语言或MATLAB实现。3. 实验步骤:本实验在编写源程序时,对实验要求进行了两种方式的阐释:一种是输入关系矩阵及其 阶数,然后依次列出路长度为1n的关系矩阵;另一种是输入关系矩阵及其阶数,然后指定 路长度的关系矩阵。本实验源程序力求简洁易懂,所以在设计时应用简单的语句并省去了许多繁杂的选择, 且每步均冇注释,使程序更清晰。但本实验在操作易于理解方面也有很人的体现。4. 程序:(1)方法一:#mclude/计算两结点间长度为m的路的数目using namespace std;mt mam()mt i,j,k;int m,nJ;mta100100,b100100;mtc100100;int s;cout请输入关系矩阵阶数:Vendl;ciiim;n=m;cout请输入关系矩阵:endl;fbr(i=O;im;i+)for(j=OjmJ+)cmaij;cout7* * */Hendrfbr(i=O;im;i+)for(j=Ojm;j+)coutw长度为1的路的矩阵:yvendl;for(i=0;im;i+)输出长度为1的路for(j=Ojm;j+)coutbijH H; coutendl;for(t=0;tn-l;t+)求长度为 2u 的路coutM长度为Ht+2n的路的矩阵:Hendl; for(i=0:im;i+)for(j=Ojmj+)s=0; fbi(k=0;km;k+) s+=aik*bk|j;cij=s;for(j=Ojmj 卄)bij=cij;for(i=0;im;i+)输出长度为2n的路for(j=Ojmj 卄)coutbijv” “; coutendl;return 0;运行结果:(2)方法二#mclude/计算两结点间长度为m的路的数目 using namespace std;mtmt i,j,k;int m,n,t;int a100100,b100100;mtc100100;int s;cout请输入关系矩阵阶数:endl; ciiim;cout请输入路的长度:endl;ciiin;cout请输入关系矩阵:endl; for(i=O;im;i+)for(j=Ojmj+) cmaij;for(i=O;im;i+) for(j=Ojm;j+) biUJ=aij;coutM长度为HnH的路的矩阵:Hendl;for(t=0;tn-l;t+)求长度为 n 的路for(i=
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号