逆波蘭式分析實驗報告_第1頁
逆波蘭式分析實驗報告_第2頁
逆波蘭式分析實驗報告_第3頁
逆波蘭式分析實驗報告_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、.實 驗 報 告姓名:孫巖學(xué)號:1408080211班級:惠普開發(fā)142學(xué)校:青島科技大學(xué)Mail: 電話:178教師:宮生文實驗報告:實驗名稱:逆波蘭式分析實驗?zāi)康暮鸵髮⒎呛缶Y式用來表示的算術(shù)表達式轉(zhuǎn)換為用逆波蘭式來表示的算術(shù)表達式,并計算用逆波蘭式來表示的算術(shù)表達式的值。實驗內(nèi)容和步驟:一、實驗內(nèi)容對于這個實驗,總共用了三個函數(shù),即主函數(shù)、算術(shù)表達式轉(zhuǎn)換為后綴表達式函數(shù)、根據(jù)后綴表達式求取表達式的計算值。主要完成的功能是接收一個包含加減乘除以及括號的算數(shù)表達式,進而將其轉(zhuǎn)換為后綴表達式,從而通過此后綴表達式求出該算數(shù)表達式的值。二、實驗步驟1、基于實驗的內(nèi)容,構(gòu)造程序所需的模塊2、根據(jù)已

2、建構(gòu)的模塊,寫出各個模塊的相應(yīng)程序代碼3、在主函數(shù)中調(diào)用模塊來完成所要得到的效果在本程序中,首先定義了數(shù)組常量exmax,用于存儲后綴表達式,操作對象在前,運算符在后;其次,是trans()函數(shù),它的作用是將算數(shù)表達式轉(zhuǎn)換為后綴表達式;其次是compvalue()函數(shù),它的作用是根據(jù)后綴表達式求取對應(yīng)算數(shù)表達式的算數(shù)值;最后是主函數(shù)模塊,主要是通過對以上幾個模塊的調(diào)用。實驗代碼如下:#include#include#include#define max 100char exmax; /*存儲后綴表達式*/void trans() /*將算術(shù)表達式轉(zhuǎn)化為后綴表達式*/char strmax; /

3、*存儲原算術(shù)表達式*/char stackmax; /*作為棧使用*/char ch;int sum,i,j,t,top=0;printf(*n);printf(*輸入一個求值的表達式,以#結(jié)束。*n);printf(*n);printf(算數(shù)表達式:);i=0; /*獲取用戶輸入的表達式*/doi+;scanf(%c,&stri);while(stri!=# & i!=max); sum=i;t=1;i=1;ch=stri;i+;while(ch!=#)switch(ch)case (: /*判定為左括號*/top+;stacktop=ch; break; case ): /*判定為右括號*

4、/while(stacktop!=() ext=stacktop;top-;t+;top-;break; case +: /*判定為加減號*/case -: while(top!=0&stacktop!=()ext=stacktop;top-;t+;top+;stacktop=ch;break;case *: /*判定為乘除號*/ case /:while(stacktop=*|stacktop=/)ext=stacktop;top-;t+;top+;stacktop=ch;break;case :break;default:while(ch=0&ch=9) /*判定為數(shù)字*/ext=ch;t

5、+;ch=stri;i+;i-;ext=#;t+;ch=stri;i+;while(top!=0)ext=stacktop;t+;top-;ext=#;printf(nt原來表達式:);for(j=1;jsum;j+)printf(%c,strj); printf(nt后綴表達式:,ex);for(j=1;j=0&ch=9) d=10*d+ch-0; /*將數(shù)字字符轉(zhuǎn)化為對應(yīng)的數(shù)值*/ ch=ext;t+; top+; stacktop=d;ch=ext;t+;printf(nt計算結(jié)果:%gn,stacktop);int main()trans();compvalue();return 0;三、實驗過程記錄:實驗截圖: 程序中出現(xiàn)的問題 1、程序中的數(shù)組使用與平常使用的不太一樣,即對數(shù)組的存取都是從下標(biāo)為1的地方開始。四、實驗總結(jié): 通過這次實踐,我主要有幾個方面的收獲: 1. 對語法制導(dǎo)翻譯原理有了進一步的理解。 2. 對逆波蘭式的翻譯過程在實踐中的應(yīng)用有了深刻地認(rèn)識和理解,把所學(xué)的知識應(yīng)用于實踐中。更深刻的理解了編譯原理的實際應(yīng)用。 3. 本次試驗激發(fā)了我的學(xué)習(xí)興趣,培

溫馨提示

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

評論

0/150

提交評論