离散实验上机作业Word文件下载.docx

上传人:b****2 文档编号:5730382 上传时间:2023-05-05 格式:DOCX 页数:28 大小:19.94KB
下载 相关 举报
离散实验上机作业Word文件下载.docx_第1页
第1页 / 共28页
离散实验上机作业Word文件下载.docx_第2页
第2页 / 共28页
离散实验上机作业Word文件下载.docx_第3页
第3页 / 共28页
离散实验上机作业Word文件下载.docx_第4页
第4页 / 共28页
离散实验上机作业Word文件下载.docx_第5页
第5页 / 共28页
离散实验上机作业Word文件下载.docx_第6页
第6页 / 共28页
离散实验上机作业Word文件下载.docx_第7页
第7页 / 共28页
离散实验上机作业Word文件下载.docx_第8页
第8页 / 共28页
离散实验上机作业Word文件下载.docx_第9页
第9页 / 共28页
离散实验上机作业Word文件下载.docx_第10页
第10页 / 共28页
离散实验上机作业Word文件下载.docx_第11页
第11页 / 共28页
离散实验上机作业Word文件下载.docx_第12页
第12页 / 共28页
离散实验上机作业Word文件下载.docx_第13页
第13页 / 共28页
离散实验上机作业Word文件下载.docx_第14页
第14页 / 共28页
离散实验上机作业Word文件下载.docx_第15页
第15页 / 共28页
离散实验上机作业Word文件下载.docx_第16页
第16页 / 共28页
离散实验上机作业Word文件下载.docx_第17页
第17页 / 共28页
离散实验上机作业Word文件下载.docx_第18页
第18页 / 共28页
离散实验上机作业Word文件下载.docx_第19页
第19页 / 共28页
离散实验上机作业Word文件下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

离散实验上机作业Word文件下载.docx

《离散实验上机作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《离散实验上机作业Word文件下载.docx(28页珍藏版)》请在冰点文库上搜索。

离散实验上机作业Word文件下载.docx

i++)//运用循环输入字符串,按换行键结束

{

scanf("

%c%c"

a[i],&

z);

m++;

//记录字符串的长度

}

z='

f'

//给z赋值,以便写个循环运用

i++)//输入第二个字符串

b[i],&

n++;

}

x=m+n;

//算出字符串的总长

for(i=m;

i<

x;

i++)//将字符串b接在字符串a的后面

a[i]=b[y++];

(m+n-1);

i++)//将相邻的字符串删去

for(j=i+1;

j<

j++)

if(a[i]==a[j])

{

for(k=j;

k<

k++)

a[k]=a[k+1];

x--;

j--;

}

printf("

集合的并集为:

"

for(i=0;

i++)//输出合并后的字符串

printf("

%4c"

a[i]);

if(d==2)

i++)//输入两个字符串

z'

i++)

m;

i++)//找出数组a与数组b中相同的元素存放于数组c中

for(j=0;

n;

if(a[i]==b[j])

c[x]=a[i];

x++;

集合的交集为:

x+1;

i++)//输出交集

c[i]);

if(d==3)//求集合的差集

i++)//输入字符串

{scanf("

m++;

n++;

i++)//将a中存在b中不存在的字符删去

{

for(k=i;

i--;

m--;

集合a对b的差集为:

i++)//输出差集

if(d==4)//求集合的补集

i++)//b是a的子集,将a中b的元素全部删去

if(b[i]==a[j])

{for(k=j;

a[k]=a[k+1];

j--;

m--;

集合b关于a的补集为:

a[i]);

if(d==5)//求两集合的对称差

i++)//将a,b中相同的元素删去,剩余的链接起来,输出

for(x=i;

x<

x++)

a[x]=a[x+1];

for(y=j;

y<

y++)

b[y]=b[y+1];

i--;

n--;

for(z=m;

z<

m+n;

z++)//将删除后的字符串连接起来

a[z]=b[k++];

集合a,b的对称差为:

i++)//输出a,b的对称差

a[i]);

}

 

求命题公式的真值表、主范式:

#include"

stdio.h"

stdlib.h"

string.h"

conio.h"

math.h"

#defineN50

voidpanduan(intb[N],intf);

//赋值函数

inttkh(charsz[N],charccu[N],inticu[N],inth0);

//分级运算函数

intfkh(charsz[N],charccu[N],inticu[N],inth0);

//主运算函数

main()

inti1,i2,d=1,icu[N],kh=0,jg,j=0,h0;

//icu[N]用于存放变量值,kh括号计数,jg存放结果

intbj=0,hq[N],h=0,x=0,xq[N];

//hq[N]存放合取结果xq[N]存放析取结果

charsz[N],ccu[N],sz0[N],s;

//sz[N]存放式子,ccu[N]存放变量,sz0[N]也是用于存放式子

hq[0]=-1;

xq[0]=-1;

***************************************\n"

//标语

****\n"

**欢迎进入逻辑运算软件**\n"

**(可运算真值表,主范式,支持括号)**\n"

**用!

表示非**\n"

**用&

表示与**\n"

**用|表示或**\n"

**用^表示蕴含**\n"

**用~表示等值**\n"

***************************************\n\n"

请输入一个合法的命题公式:

//输入式子

gets(sz);

//读取式子

strcpy(sz0,sz);

//复制式子

for(i1=0;

i1<

strlen(sz);

i1++)

{

if(sz[i1]=='

)'

||sz[i1]=='

('

)//存储括号数量

kh++;

if(sz[i1]>

a'

&

&

sz[i1]<

||sz[i1]>

A'

Z'

for(i2=0;

i2<

j;

i2++)//判断并储存变量。

if(ccu[i2]==sz[i1])//去除重复变量

d=0;

ccu[j]=sz[i1];

j++;

d=1;

\nd该式子中的变量个数为:

%d\n"

j);

//输出变量个数

h0=j;

\n输出真值表如下:

\n\n"

//输出真值表表头

h0;

%c"

ccu[i1]);

"

puts(sz);

i1++)///////先将所有的变量赋值为零。

icu[i1]=0;

i2++)//输出真值表前项

%d"

icu[i2]);

jg=tkh(sz,ccu,icu,h0);

//用函数求结果

if(jg==0)//结果为0,合取加1

hq[h++]=bj;

else//否则,析取加1

xq[x++]=bj;

%d\n"

jg);

//输出运算结果

strcpy(sz,sz0);

(int)pow(2,j)-1;

++bj;

panduan(icu,j-1);

//赋值变量

//恢复被修改的数组。

i2++)

//输出真值表前项

}

if(hq[0]==-1)//不存在合取范式时

\n该命题公式不存在主合取范式。

else

\n该命题公式的主合取范式:

\n\t"

h;

if(i1>

0)//判断并添加符号

/\\"

M(%d)"

hq[i1]);

//输出主合取范式

if(xq[0]==-1)//不存在析取范式时

\n该命题公式不存在主析取范式。

\n\n该命题公式的主析取范式:

\\/"

m(%d)"

xq[i1]);

//输出主析取范式

\n欢迎下次再次使用!

\n"

//结束

getch();

voidpanduan(intb[N],intf)//二进制赋值。

inti;

i=f;

if(b[f]==0)//加1

b[f]=1;

else//进位

b[f]=0;

panduan(b,--i);

inttkh(charsz[N],charccu[N],inticu[N],inth0)//分级运算函数

inti,j,h,s,kh=0,wz[N],a;

charxs1[N],ckh[N];

//xs1用来保存括号内的字符ckh用来保存括号。

s=strlen(sz);

for(i=0;

s;

if(sz[i]=='

||sz[i]=='

)//判断括号

wz[kh]=i;

//存储括号位置

ckh[kh]=sz[i];

//存储括号类型

if(kh==0)

returnfkh(sz,ccu,icu,h0);

//如果无括号,直接运行

kh;

if(ckh[i]=='

)//找到第一个)

break;

for(j=wz[i-1]+1,h=0;

wz[i];

j++,h++)//存储最内级括号中的内容

xs1[h]=sz[j];

xs1[h]='

\0'

a=fkh(xs1,ccu,icu,h0);

//运行最内级括号的式子,得到结果

if(a==1)//判断并存储结果

sz[wz[i-1]]=1;

sz[wz[i-1]]=-2;

for(j=wz[i-1]+1;

s+wz[i-1]-wz[i];

j++)//将括号后内容前移

sz[j]=sz[j+wz[i]-wz[i-1]];

sz[j]='

returntkh(sz,ccu,icu,h0);

//循环执行

intfkh(charsz[N],charccu[N],inticu[N],inth0)//主运算函数

inti,h=0,j=0,j1=0,j2=0,j3=0,j4=0,j5=0,i1,i2,p1=-1,p2=-1,s;

chardt[N];

if(s==1)

if(sz[0]==-2)//判断是否是最后一项

return0;

return1;

//1就是sz[0]的值、

s-j;

i++)//先处理非

!

'

if(sz[i+1]==ccu[i1])//将变量赋值并给P1

p1=icu[i1];

if(sz[i+1]==-2)//如果是前运算结果的0,则P1等于0

p1=0;

if(p1==-1)//如果是数字,直接给P1

p1=sz[i+1];

dt[j+2]=!

p1;

//非运算

sz[i]=j+2;

for(i1=i+1;

sz[i1]=sz[i1+1];

//将后续式子前移一项

p1=-1;

j1=j;

s-j1-2*j2;

i++)//处理与

if(sz[i-1]==ccu[i1])//将变量赋值并给P1

if(sz[i+1]==ccu[i1])//将变量赋值并给P2

p2=icu[i1];

for(i2=2;

j+2;

i2++)

if(sz[i-1]==i2)//如果为前计算结果,将结果赋值并给P1

p1=dt[i2];

if(sz[i+1]==i2)//如果为前计算结果,将结果赋值并给P2

p2=dt[i2];

if(sz[i-1]==-2)//如果是前运算结果的0,则P1等于0

if(sz[i+1]==-2)//如果是前运算结果的0,则P2等于0

p2=0;

if(p1==-1)//如果是数字,直接给P1

p1=(int)(sz[i-1]);

if(p2==-1)//如果是数字,直接给P2

p2=(int)(sz[i+1]);

dt[j+2]=p1&

p2;

//与运算

sz[i-1]=j+2;

j2++;

p2=-1;

for(i1=i;

i1++)//将后续式子前移两项

sz[i1]=sz[i1+2];

i=i-1;

s-j1-2*j2-2*j3;

i++)//处理或。

|'

{

if(sz[i+1]==i2)//如果为前计算结果,将结果赋值并给P2

p1=sz[i-1];

p2=sz[i+1];

dt[j+2]=p1||p2;

//或运算

j3++;

i--;

s-j1-2*j2-2*j3-2*j4;

i++)//处理蕴含。

^'

if(sz[i-1]==-2)//如果是前运算结果的0,则P1等于0

p1=0;

if(sz[i+1]==-2)//如果是前运算结果的0,则P2等于0

p2=0;

if(p1==-1)//如果是数字,直接给P1

p1=sz[i-1];

if(p2==-1)//如果是数字,直接给P2

p2=sz[i+1];

dt[j+2]=!

p1||p2;

//蕴含运算

sz[i-1]=j+2;

j++;

j4++;

p1=-1;

p2=-1;

for(i1=i;

sz[i1]=sz[i1+2];

i--;

s-j1-2*j2-2*j3-2*j4-2*j5;

i++)//处理等值。

~'

dt[j+2]=(!

p1||p2)&

(!

p2||p1);

//等值运算

j5++;

returndt[j+1];

//返回结果

对关系性质的验证:

voidfuzhi(inta[50][50],intb[50][50],intn);

voidwarshall(intb[50][50],intn);

{inta[50][50],b[50][50],i,j,n;

请输入关系矩阵的阶数:

n);

请输入%d阶的关系矩阵:

n);

第%d行:

i+1);

for(j=0;

a[i][j]);

//自反闭包

fu

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2