freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理-逆波蘭式的產(chǎn)生及計(jì)算(已修改)

2025-08-05 03:01 本頁(yè)面
 

【正文】 學(xué)號(hào)1406410107成績(jī)編譯原理上機(jī)報(bào)告名 稱(chēng): 逆波蘭式的產(chǎn)生及計(jì)算 學(xué) 院: 信息與控制工程學(xué)院 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 計(jì)算機(jī)1401班 姓 名: 葉達(dá)成 2016年 11月 4日一、上機(jī)目的通過(guò)設(shè)計(jì)、編制、調(diào)試一個(gè)典型的語(yǔ)法分析程序,實(shí)現(xiàn)對(duì)詞法分析程序所提供的單詞序列進(jìn)行語(yǔ)法檢查和結(jié)構(gòu)分析,進(jìn)一步掌握常用的語(yǔ)法分析方法。選擇最有代表性的語(yǔ)法分析方法,如LL(1) 語(yǔ)法分析程序、算符優(yōu)先分析程序和LR分析分析程序,并至少完成兩個(gè)題目。選擇對(duì)各種常見(jiàn)程序語(yǔ)言都用的語(yǔ)法結(jié)構(gòu),如賦值語(yǔ)句(尤指表達(dá)式)作為分析對(duì)象,并且與所選語(yǔ)法分析方法要比較貼切。⑴ 實(shí)驗(yàn)前的準(zhǔn)備按實(shí)驗(yàn)的目的和要求,編寫(xiě)語(yǔ)法分析程序,同時(shí)考慮相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。⑵ 調(diào)試調(diào)試?yán)討?yīng)包括符合語(yǔ)法規(guī)則的算術(shù)表達(dá)式,以及分析程序能夠判別的若干錯(cuò)例。⑶ 輸出對(duì)于所輸入的算術(shù)表達(dá)式,不論對(duì)錯(cuò),都應(yīng)有明確的信息告訴外界。⑷ 擴(kuò)充有余力的同學(xué),可適當(dāng)擴(kuò)大分析對(duì)象。譬如:① 算術(shù)表達(dá)式中變量名可以是一般標(biāo)識(shí)符,還可含一般常數(shù)、數(shù)組元素、函數(shù)調(diào)用等等。② 除算術(shù)表達(dá)式外,還可擴(kuò)充分析布爾、字符、位等不同類(lèi)型的各種表達(dá)式。③加強(qiáng)語(yǔ)法檢查,盡量多和確切地指出各種錯(cuò)誤。二、基本原理和上機(jī)步驟基本原理:將運(yùn)算對(duì)象寫(xiě)在前面,而把運(yùn)算符號(hào)寫(xiě)在后面。用這種表示法表示的表達(dá)式也稱(chēng)做后綴式。逆波蘭式的特點(diǎn)在于運(yùn)算對(duì)象順序不變,運(yùn)算符號(hào)位置反映運(yùn)算順序。采用逆波蘭式可以很好的表示簡(jiǎn)單算術(shù)表達(dá)式,其優(yōu)點(diǎn)在于易于計(jì)算機(jī)處理表達(dá)式。上機(jī)步驟:(1)構(gòu)造一個(gè)棧,存放運(yùn)算對(duì)象。(2)讀入一個(gè)用逆波蘭式表示的簡(jiǎn)單算術(shù)表達(dá)式。(3)自左至右掃描該簡(jiǎn)單算術(shù)表達(dá)式并判斷該字符,如果該字符是運(yùn)算對(duì)象,則將該字符入棧。若是運(yùn)算符,如果此運(yùn)算符是二目運(yùn)算符,則將對(duì)棧頂部的兩個(gè)運(yùn)算對(duì)象進(jìn)行該運(yùn)算,將運(yùn)算結(jié)果入棧,并且將執(zhí)行該運(yùn)算的兩個(gè)運(yùn)算對(duì)象從棧頂彈出。如果該字符是一目運(yùn)算符,則對(duì)棧頂部的元素實(shí)施該運(yùn)算,將該棧頂部的元素彈出,將運(yùn)算結(jié)果入棧。(4)重復(fù)上述操作直至掃描完整個(gè)簡(jiǎn)單算術(shù)表達(dá)式的逆波蘭式,確定所有字符都得到正確處理,我們便可以求出該簡(jiǎn)單算術(shù)表達(dá)式的值。三、上機(jī)結(jié)果程序清單:includeiostreamincludeincludeincludealgorithmincludecctypeincludecstringusing namespace std。char str[50]。 //用于存放原來(lái)的表達(dá)式int top。 //棧頂指針char stack[50]。 //定義棧,用于計(jì)算逆波蘭式char ex[50]。 //存放后綴表達(dá)式double _stack[50]。 //定義棧,用于計(jì)算逆波蘭式子int flag[50]。 //用于區(qū)分+、號(hào)的含義,0表示運(yùn)算符,1表示正負(fù)號(hào)//生成逆波蘭式void NiBolan(){ memset(flag,0,sizeof(flag))。 //flag初始值設(shè)為0 char ch=str[0]。 int i=1,t=0。 top=0。 while(ch!=39。39。) {
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1