资源描述:
《实验四DFA程序实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验三DFA程序实现一、实验目的通过DFA程序的实现理解自动机的原理。二、实验重难点DFA编码实现三、实验内容与要求1DFA的程序表示;四、实验学时2课时五、实验设备与环境VisualC++6.0六、实验过程1・ThereisanFA=({0,l,2,3},{a,b},M,0,{3})M:M(0,a)=lM(0,b)=2M(l,a)二3M(1,b)=2M(2,a)=lM(2,b)=3M(3,a)=3M(3,b)=3Thequestionishowtojudgewhetherthestring“abbb''
2、couldbeidentifiedoracceptedbytheFA?01233参考代码:switches”£惑耳0:return2屮g裟1:return2;ag鹘.2:return3;a觀g3:return3;a临realize(char^input)*-*(-yalz=3屮mts,s=sO;*JXoxa-O,input[i]—阴++”L虫珈克,%s・stepOopi战[i]〉;}4];〜曰您.return0;^诚iA血a;a戲惑input[40]屮p^l^-FAK(0,1,2,3),0,(3})j
3、屮pxgfMSWPX斑边?M(0,a)=lM(0,b)=2H)屮B加圮M(1,a)=3.M(1,b)=2H);4、”CPnoWC1'input劇XRS隔ag^inpleasgpXPlop;”PXjq边「thestatussequenceisap^U^..input);Q谀a—1”PXlnl圾thisstringcanbeidentified");创倉克&仗或妖卄5圾芟stringcantbeidEtifigcrg”);~RXitliX,,Pressentertoexittheprogram,,);4J刖©漳O;~2.以教材P72页习题3为例,确定化后的DFA为:0,1Qi0构造该自动机的c语言程序表示;#in
5、cludeintin(chars,charc,chare,charf){if(s==c){printf(HClook!thelaststatusbelongstoC!H);return1;}elseif(s==e){printf(HElook!thelaststatusbelongstoE!M);return1;}elseif(s==f){printf(uFlook!thelaststatusbelongstoF!n);return1;}else{return0;}}char
6、step(chars,intt){if(t==O)〃判断数字经0转换成另一个数字switch(s){case's':re(um'a:case^^returnC;case^^returnT;case^^returnT;case^^returnT;casee:retumV;caseT:returnf;elseif(t==T)〃判断数字经1转换成另一个数字switch(s){case^^returnb;case◎:returnb;caseb:re(ume;case^^returnf;casee:relumO;
7、caseT:returnf;})intrealize(char*input){charc-cf;chare-e1;charf='f;inti;chars;s=*s';for(i=0;input[iJ!-';i++){printf(”%2c”,s);s=step(s,input[i]);}if(in(s,c,e,f))return1;elsereturn0;}main(){inti;inta;charinput[40];printf(nFA=({S,A,B,C,D,E,F},{0,1},M,S,(C,F
8、))”);〃文法五元组M(S,l)=BM);M(A,l)=Bu);M(BJ)=En);M(CJ)=Fn);printf(uM:");printfCM(S,0)=Aprintf(nM(A,0)=CprintfC*M(B,0)=Dprintf(HM(C,0)=Fprintf(uM(D,O)=FM(D,1)=nullM);printfCM(E,O)=CM(E,l)=EH);printf(nM(F,O)