資源簡介
這是所有的離散數學的源碼,在自己做的時候,有些問題確實不會,但是也沒人問,所以,為了后來人,我把資源傳上來,希望給大家參考,但是,我十分不希望大家直接打印源碼交給老師,這樣沒什么效果,態度決定度!
代碼片段和文件信息
#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;
}
- 上一篇:屏幕截圖 多屏 截窗口 十字放大
- 下一篇:嵌入式/單片機開發程序
評論
共有 條評論