預測分析算法的設計與實現(xiàn)_第1頁
預測分析算法的設計與實現(xiàn)_第2頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、預測分析算法的設計與實現(xiàn)程序代碼:IlliIlli855202050/*產(chǎn)生式右部結(jié)構(gòu)*/J*J;J;/*右部長度*/*;/*右部結(jié)點頭指針*/;+1;/*非終結(jié)符集*/J+1;/*終結(jié)符集*/JP;/*要分析的符號串*/()*輸出分析表*/(*);();();();(r);()J();();();();();();("所得集為:");();("所得集為:");();();();='y'('y')(y/n):");("n是否繼續(xù)進行句型分析?=();('y''n')(&q

2、uot;n(y/n)?");=();('y')i;();("請輸入符號串(以#結(jié)束):");=();i=0;('#'i<)i=;();("輸入出錯!n");();()J=0;=0;=0;(i=0;i<=;)i='0'(i=0;i<=;)i='0'(i=0;i<)Pi=;Pi=;Pi=0;=0;(i=0;i<=;)()n;n=0;/*?*/(n'0'n)('0'n)100+n;n=0;/*?*/(n'0'n

3、)('0'n)n;-1;/*輸出或的內(nèi)容*/(*)k=0;('0'k)("",);("n");/*輸入非終結(jié)符*/()='0'n=0;('#')(n<)('''n'-1()=;=();n='#'/*以"#"標志結(jié)束用于判斷長度是否合法*/k=n;('#')('#'(=()('#'(=()J("n符號數(shù)目超過限制!n");=1;J("輸入正確確

4、認?():");("",);('n')("錄入錯誤重新輸入!n");=1;=0;/*輸入終結(jié)符*/()=1;()("n請輸入所有的終結(jié)符,注意:");("以#號結(jié)束:n");=I一Jn=0;/*初始化數(shù)組*/(n<)='0'n=0;('#')(n<)('''n'-1()=;=();n='#'k=n;('#')('#'(=()('#'(=()J(&quo

5、t;n符號數(shù)目超過限制!n");=1;k='0'();=I('y''n')('n')("輸入正確確認?():");("",);('n')("錄入錯誤重新輸入!n");=1;=0;/*產(chǎn)生式輸入*/()i=0,;("請輸入文法產(chǎn)生式的個數(shù):");("",);一J();/*消除回車符*/",);("n請輸入文法的個產(chǎn)生式,并以回車分隔每個產(chǎn)生式:("n");(i<)

6、("第個:",i);/*初始化*/(n=0;n<)n='0'/*輸入產(chǎn)生式串*/n=0;('n'(=()n<)('')=;n='0'()*JJPi=(0);=(*)();>=(3);>=;Pi=;n=4;('0'n)=(*)();>=(n);>=;>=;Pi=n-3;Jn");("輸入符號含非法在成分,請重新輸入!/*判斷產(chǎn)生式正確性*/(*)n;(100>(0)('-'1)('>'2)J(

7、n=3;'0'n;n)(-1(n)JJ(U)J(i=0;i<)(PiU)*J=Pi;j=0;(j<Pi)(100>>)(U,>);J(>-100)(>);(U,>);(>)=>J(j>=Pi)/*當產(chǎn)生式右部都能推出空時*/(U,-1);/*加入集*/(U,)*JJ;/*用于處理*/一J一J(<100)=U-100;()(>)一J=>()=(*)();>=;(U-100)U-100=;>=;/*指向集的最后一個元素*/=>=-100;()=>(-1)(U,);=>(

8、)(<100)=-100;()(-1>)=>(V)i;*J(100V)/*當為初始符時*/(V,-1,0);(i=0;i<)=Pi;(>V)=>()=>()(Pi-100PiV)(Pi);(V,Pi,0);(>)(V,>,1);=>()(Pi-100PiV)(Pi);(V,Pi,0);(V,>,1);(V,)(<100)/*為終結(jié)符時*/=V-100;()(>)一J=>()=(*)();>=;>=;(V-100)V-100=;>=;/*指向集的最后一個元素*/=>(0)=-100;()=

9、>(V,0);=>=-100;()=>(-1)(V,1);=>/*輸出或集*/(*)i;*Ji=0;(i)=i;(":t",i);()(-1>)("",>);("#");=>("n");/*計算和*/()i;i=0;('0'i)(i)(100+i);Ji=0;('0'i)(100+i);/*構(gòu)造預測分析表*/()i;*J*J(i=0;i<)=Pi;(>)=>-100;()(-1>)Pi-100>=i;=>=

10、>()=Pi-100;()(-1>)Pi-100>=i;Pi-100=i;=>(100<=>)/*不含空的非終結(jié)符*/=>-100;()Pi-100>=i;=>/*終結(jié)符或者空*/(-1>)=Pi-100;()(-1>)Pi-100>=i;/*當含有#號時*/Pi-100=i;=>/*為終結(jié)符*/Pi-100>=i;/*輸出分析表*/()("構(gòu)造預測分析表如下:n");("t");(i=0;i<)("t",i);("#tn")

11、;("-t");(i=0;i<=;)("-t");("n");(i=0;i<)("t",i);(j=0;j<=;)(-1ij)("R()t",ij);("t");("n");(*);/*r表使用的產(chǎn)生式的序號*/的分析過程:n",);("步驟t分析符號棧t當前指示字符t使用產(chǎn)生式序號n");=0;=0;("t");();("tt-n",);('#')(1

12、00>)()();("t",);();("ttt出棧、后移n",);("不匹配!",);("此串不是此文法的句子!n");J/*當為非終結(jié)符時*/r=-100();(-1r)(r);J("t",);();("ttn",r);("此串不是此文法的句子!n");('#')(0'#')("t",);();("ttt分析成功!n",);("是給定文法的句子!n",);

13、(>0)(100>)("此串不是此文法的句子!n");Jr=-100;(-1r)(r);/*產(chǎn)生式右部代替左部,指示器不移動*/J("t",);();();(0'#')("ttt分析成功!n",);("是給定文法的句子!n",);("ttn",r);("此串不是此文法的句子!n");/*初始化棧及符號串*/()i;/*分析棧的初始化*/(i=0;i<)i='0'0=-1;/*#(-1)入棧*/1=100;/*初始符入棧*/=1

14、;/*顯示符號棧中內(nèi)容*/()i;(i=0;i<=;)(100<=i)("",i-100);(-1i)("",i);("#");/*棧頂出棧*/()(r)i;();=Pr;(-1>)JPr;(i=0;i<Pr;)逆序入棧*/-i=>*=>運行結(jié)果演示E:zzu編譯原浬侏澤2驗肓導實驗2閔僉2.exe請輸入所有的非終結(jié)符,注意:請將開始符放在第一位,并以井號結(jié)束:shABttSB輸入正確確認?>:y請輸入所有的終結(jié)符,注意:以#號結(jié)束:ab倏法b正入入輸a.$冃-012心T17一Tl7一Tl7.穿穿算ttSABSABttattttS!R<0>errorerrorerrorerrorArR<1>errorerrorerrorerrorBR<2>errorerrorerrorerror杲否繼續(xù)進行句型分析?<9/n>:<y/n>?y請輸入符號串以#結(jié)束:abtt半:歹摞刀祈伺'伐當前指示字符0#Sa1#BAa2#Bb+aa3#Bb+bE:zzu編譯原

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論