资源简介

这是所有的离散数学的源码,在自己做的时候,有些问题确实不会,但是也没人问,所以,为了后来人,我把资源传上来,希望给大家参考,但是,我十分不希望大家直接打印源码交给老师,这样没什么效果,态度决定度!

资源截图

代码片段和文件信息

#include
#include
using namespace std;
void OutputX(char co[8]char a[4]);
void OutputH(char co[8]char a[4]);
int get(int int);
int c=0  r;            //c为列,r为行
int main()
{

char a[4];               //命题变元
char co[8];                 //输入的公式真值表
cout<<“请输入命题变元,以#结束输入“< for(int i=0 ; i<4 ; i++)
{
cin>>a[i];
if(a[i]==‘#‘)
break;
c++;
}
r=pow(2c);
cout<<“请输入公式的真值表:“< for(i=0 ; i {
cin>>co[i];
}
OutputX(coa);     //输出主析取范式
OutputH(coa);     //输出主合取范式
return 0;
}
void OutputX(char co[8]char a[4])  //输出析取范式
{
cout<<“公式的主析取范式:“< int count=0;     //判断是否为第一小项
for(int i=0 ; i {
if(co[i]==‘T‘)
{
if(count==0)
{
cout<<“(“;
for(int j=0 ; j {
if(get(ij)==1)
{
if(j==c-1)
cout< else
cout< }
else
{
if(j==c-1)
cout<<“¬“< else
cout<<“¬“< }
}
cout<<“)“;
count++;
}
else
{
cout<<“∨“<<“(“;
for(int j=0 ; j {
if(get(ij)==1)
{
if(j==c-1)
cout< else
cout< }
else
{
if(j==c-1)
cout<<“¬“< else
cout<<“¬“< }
}
cout<<“)“;
}
}
}
cout<}
void OutputH(char co[8]char a[4]) //输出合取范式
{
cout<<“公式的主合取范式:“< int count=0;     //判断是否为第一小项
for(int i=0 ; i {
if(co[i]==‘F‘)
{
if(count==0)
{
cout<<“(“;
for(int j=0 ; j {
if(get(ij)==0)
{
if(j==c-1)
cout< else
cout< }
else
{
if(j==c-1)
cout<<“¬“< else
cout<<“¬“< }
}
cout<<“)“;
count++;
}
else
{
cout<<“∧“<<“(“;
for(int j=0 ; j {
if(get(ij)==0)
{
if(j==c-1)
cout< else
cout< }
else
{
if(j==c-1)
cout<<“¬“< else
cout<<“¬“< }
}
cout<<“)“;
}
}
}
cout<}
int get(int iint j){
i=r-1-i;
j=c-j;
int result;
while(j>0)
{
result=i%2;
i=i/2;
j--;
}
return result;

}

评论

共有 条评论