1 / 15
文档名称:

离散实验报告.doc

格式:doc   大小:320KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

离散实验报告.doc

上传人:ipod0b 2017/7/24 文件大小:320 KB

下载得到文件列表

离散实验报告.doc

文档介绍

文档介绍:实验一真值计算
一、实验目的
熟悉联结词合取、析取、条件和双条件的概念,编程求其真值。
二、实验内容
从键盘输入两个命题P和Q的真值,求它们的合取、析取、条件和双条件的真值。用C语言实现。
三、程序源代码
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
bool p,q,h,x,d,s;
cout<<"请输入p的真值";
cin >> p ;
cout<<"请输入q的真值";
cin>>q;
h=p && q;
x=p || q;
if (p=0)
d=1;
else
d=p && q;
s=h;
cout <<"p合取q的值为"<<h<<" ; "<<"p析取q的值为"<<x<<"\n";
cout <<"p到q的条件值为"<<d<<" ; "<<"p到q的双条件值为"<<s<<"\n";
}
四、程序运行结果
实验二关系闭包计算
一、实验目的
熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。
二、实验内容
从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包,传递闭包要求使用两种算法,即R+和Warshall算法。用C语言实现。
三、程序源代码
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
bool M[10][10],N[10][10],be[10][10],M2[10][10];
int x,y,i,j,z,u;
bool zhi;
void xianshi();
void qingling();
void zifan();
void duichen();
void cdr_1();
void cd();
void ss();
void ssfan();
void ss2();
void cdw();
void main()
{

cout<<"请输入元素个数(元素个数不得大于10)";
cin>>x;
cout<<"请输入关系矩阵中的0项或是1项,按0输入0项,按1输入1项:";
cin>>y;
for (i=1;i<=x;i++)
{
for (j=1;j<=x;j++)
M[i-1][j-1]=!(bool)y;
}
cout<<"请输入关系矩阵中的"<<(bool)y<<"项"<<"第一个数为行数,第二个数为列数,输入00结束";
while (i!=0 && j!=0)
{
cin>>i>>j;
if (i==0 && j==0)
break;
M[i-1][j-1]=(bool)y;
cout<<"M["<<i<<"]["<<j<<"]="<<M[i-1][j-1]<<"\n";
}
ssfan();
xianshi();
zifan();
duichen();
cdr_1();
cdw();
}
void ss()
{
for (i=1;i<=x;i++)
{
for (j=1;j<=x;j++)
M[i-1][j-1]=N[i-1][j-1];
}
}
void ssfan()
{
for (i=1;i<=x;i++)
{
for (j=1;j<=x;j++)
N[i-1][j-1]=M[i-1][j-1];
}
}
void xianshi()
{
for (i=1;i<=x;i++)
{
for (j=1;j<=x;j++)
cout<<M[i-1][j-1]<<" ";
cout<<"\n";
}
cout<<"\n";
}
void qingling()
{
for (i=1;i<=x;i++)
{
for (j=1;j<=x;j++)
M[i-1][j-1]=0;
}
}
void zifan()
{
ss();
cout<<"自反闭包的矩阵为:"<<"\n";
for (i=1;i<=x;i++)
{

M[i-1][i-1]=1;
}
cout<<"\n";
xianshi();
}
void duichen()
{
ss();
cout<<"对称闭