




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上編譯原理課程設計報告1、 分析通過設計,編制,調試一個語法及語義分析程序,加深對語法及語義分析原理的理解。IF 布爾表達式 THEN 賦值語句 ELSE 賦值語句 其中(1)、可以選擇遞歸下降法、LL(1)、算符優先分析法、LR法完成以上任務,中間代碼選用四元式。 (2)、 寫出符合分析方法要求的文法,給出分析方法的思想,完成分析程序設計。(3)、 編制好分析程序后,設計若干用例,上機測試并通過所設計的分析程序。2、 算法設計 程序要求有三部分組成,即詞法分析、語法分析、以及語義分析。其中詞法分析部分要求完成對輸入程序關鍵字、標識符、常數、運算符進行識別;并分析詞法分
2、析的結果,檢查程序輸入的關鍵字是否為符合設計文法的關鍵字,檢查標志符是否是合法標志符,識別運算符的種類。語法分析部分主要是以算符優先文法的設計思想和步驟完成對詞法分析結果的的語法分析工作,判斷輸入的程序是否符合設計的IF-THEN-ELSE文法。在語法分析通過的基礎上進行語義分析,其主要任務是完成對語法分析后的程序的語義分析,根據語法制導翻譯去翻譯輸入的程序,從而得到程序的中間代碼表示形式四元式。 詞法分析、語法分析和語義分析的流程圖如下:(1) 詞法分析A 詞法分析器的功能和輸出形式輸入:所給文法的源程序字符串輸出:二元組(單詞種別,單詞符號的屬性值)構成的序列B. 待分析的簡單語言的詞法因
3、為是模擬簡單編譯器, 所以就以C語言的小型子集作為模擬編譯器的詞法.模擬程序語言的單詞符號可分為下列五種; 關鍵字: (相當于Pascal語言中的begin) , if ,else , while , (相當于Pascal語言中的end ) 所有的關鍵字都是小寫字母 . 運算符: + , - , * , / , = , < , <= , = , > , >= ,<> , && ,| , ! 界 符: 逗號 ,分號 ,左圓括號 , 右圓括號 , # 常 數: 在這里只涉及到int型常量 其他單詞是標識符(ID)和整形常數(NUM),通過以下正規
4、式定義: ID = letter(letter|digit)*NUM = digit digit *空格由空白,制表符和換行符組成,空格一般用來分隔ID,NUM,運算符,界符和關鍵字,詞法分析階段通常會被過濾掉。C.詞法分析的設計思想:算法的基本任務是從字符串表示的源程序中識別出其具有獨立意義的單詞符號, 其基本思想是根據掃描到的單詞符號的第一個字符的種類, 拼出相應的單詞符號。(2)語法分析語法分析要處理的輸入是詞法分析的輸出即單詞序列。該部分主要用到兩個棧,一個用來保存單詞標志號的狀態棧另一是用來保存單詞本身信息的符號棧。程序從詞法分析輸出的單詞序列中讀取一個單詞,檢查單詞是否是合法單詞,
5、如果是合法的,則取符號棧的棧頂元素,和當前單詞的標志號進行優先級比較,如果小于當前單詞的優先級那么將當前單詞壓入符號棧,將其標志號壓入狀態棧;如果大于當前單詞的優先級那么繼續彈出狀態棧的元素,和上一個符號棧彈出的元素進行比較,如果兩優先級相等則繼續彈,如果小于上一次彈出的元素的優先級,則彈的所有元素按先后彈的倒置順序排列為一個句柄,查找產生式找到相應的產生式進行規約,把規約或的元素當多當前一的元素繼續進行比較,直到詞法分析輸出結果全部遍歷完。在規約的過程中記下規約的次數,和每次規約的元素,以便語義分析和中間代碼生成。(3) 語義分析語義分析主要是將語義分析結果轉化成三地址碼表示的中間代碼的過程
6、。在語法分析的過程中,在每次規約的過程中記錄規約的類型和各個類型規約的次數。即當規約的語句是布爾表達式時每規約一次都將規約的語句轉化成三地址碼的形式保存在字符串E中并記錄E中規約產生式的次數在m1.quad中;如果規約的產生式是第一個賦值語句塊中的賦值語句,則將規約的產生式以三地址形式保存在字符串B1中并記錄B1中規約產生式的次數在m2.quad中;如果規約的產生式是第二個賦值語句塊中的賦值語句,則將規約的產生式以三地址形式保存在字符串B2中并記錄B2中規約產生式的次數在 m3.quad中。最后控制將B1、B2和E中的內容輸入。3、 LL(1)文法 LL(1)文法分析流程圖: 構造不帶回溯的自
7、上而下分析的文法條件1. 文法不含左遞歸,2. 對于文法中每一個非終結符A的各個產生式的候選首符集兩兩不相交。即,若Aa 1|a 2|a n 則 FIRST(a i)FIRST(a j)f (i¹j)3. 對文法中的每個非終結符A,若它存在某個候選首符集包含e,則FIRST(A)FOLLOW(A)=f如果一個文法G滿足以上條件,則稱該文法G為LL(1)文法。構造預測分析表的步驟:對每個產生式Aa1|an執行,。對FIRST(A)中每個終結符a, 把Aai加入到MA,a, 其中a FIRST(ai)若FIRST(ai), 則對任何屬于FOLLOW(A)的終結符b,將A ai加入MA,b
8、。把所有無定義的MA,a標記為出錯。在上面的屬性文法中我們使用了這樣的假定:每當需要臨時變量時,newtemp產生新的臨時名字; lookup()用于根據名字的拼寫檢查符號表中是否存在該名字的條目。如果有,返回該條目的指針,否則lookup返回nil,以表示沒有找到;E的屬性place用來存放E值的變量名在符號表的登錄項或一整數碼(若此變量是一個臨時變量);函數newtemp用來產生一個新的臨時變量的名字,把該名字也存入符號表,并返回該條目的地址。過程emit將其參數寫到輸出文件上。emit的參數構成一個三地址語句;變量nextstat給出在輸出序列中下一個三地址語句的序號,em
9、it在產生每個三地址語句后將nextstat加1。我們給relop以屬性op,用來確定該關系算符究竟代表哪個關系運算。E.true,E.falsen和S.next都是三地址語句的標號,它們都是繼承屬性.。E.true和E.false分別表示E為真和為假時控制流應該轉向的標號,這兩個屬性由E的上下文決定;S.next表示執行完S后應該執行的第一個三地址語句的標號,它也是由S的上下文決定語法分析方法描述開始時,將"#"和文法開始符號放入棧底。總控程序在任何時候都是根據棧頂符號X和當前的輸入符號進行工作的,它與文法無關 總控程序根據現行棧頂符號X和當前輸入符號a,執行下列三種動作
10、之一:1. 若Xa,則宣布分析成功,停止分析。2. 若Xa ,則把X從STACK棧頂逐出,讓指針指向下一個輸入符號。3.若X是一個非終結符,則查看分析表M。 若MX,a中存放著關于X的一個產生式,把X逐出STACK棧頂,把產生式的右部符號串按反序一一推進STACK棧(若右部符號為,則意味不推什么東西進棧)。在把產生式的右部符號推進棧的同時應做這個產生式相應的語義動作。若MX,a中存放著“出錯標志”,則調用出錯診察程序ERROR。四、詳細設計4.1 語法規則定義的文法,如下: (0) Z-àS(1) S-àAB(2) A->CDE(3) C-àvoid(4)
11、D-àmain(5) E-à()(6) B-àF(7) F-àGF(8) F-àG(9) G->HIJ(10) H-àint(11) I-àKLM(12) K-àcharacter(13) L-à=(14) M->num(15) J-à4.2程序流程圖語法分析是編譯程序的核心部分,其主要任務是確定語法結構,檢查 語法錯誤,報告錯誤的性質和位置,并進行適當的糾錯工作.法分析的方法有多種多樣,常用的方法有遞歸子程序方法、運算符優先數法、狀態矩陣法、LL(K)方法和LR(K)方法。歸納起來
12、,大體上可分為兩大類,即自頂向下分析方法和自底向上分析方法. Syntax進行語法分析.對于語法分析,這里采用LR(1)分析法,判斷程序是否滿足規定的結構.構造LR(1)分析程序,利用它進行語法分析,判斷給出的符號串是否為該文法識別的句子,了解LR(K)分析方法是嚴格的從左向右掃描,和自底向上的語法分析方法。4.3基本樹形結構:if語句: if語句表達式語句語句while語句:while語句表達式語句表達式語句表達式for語句表達式for循環語句:復合語句:語句復合語句語句語句聲明五、 實驗結果要編譯的文件:詞法分析:輸出的四元式:六、 心得體會這段時間的課程設計讓我知道計算機將高級語言翻譯成
13、機器語言的過程,并且體會到了中間的設計分析處理過程,再一次熟悉了C語言的編寫。也學到了許多課本上沒寫的東西,在實驗的編寫中有許多的坎坷,但是在大家集體和老師的幫助下,都慢慢的克服,也沒有什么困難是不可克服的!經過這個實驗,也深入體會到計算機的內部世界,進一步的摸清楚計算機的構架。為以后的學習工作再一次奠定了基礎,受益匪淺!七、 源代碼#include<iostream.h>#include<fstream.h>#include<string.h>#include<iomanip.h>#include<malloc.h>enum key
14、word $right_paren,$left_paren,$mul,$div,$add,$sub,$fenhao, $equal,$IF,$THEN,$ELSE,$greater,$less,$id,$num,$end;/關鍵字的枚舉typedef struct Tokenkeyword type;char ch;Token;/定義的token結構typedef enumJUMP,JG,JL,equal,END,add,mul,sub,divOpKind;/操作符定義為opkindtypedef structint label;/標號OpKind op;/操作符char par1,par2;
15、/操作數unionchar result;/結果int address;/地址;Quad; /四元式入口#define MAX_TOKEN 256/Token表大小#define MAX_QUAD 256/四元式數組大小Token tokentableMAX_TOKEN;Quad quadMAX_QUAD;int token_index;/token表索引int total_len;/token表有效長度int quad_len;/四元式表有效長度int quad_index;/四元式索引Token cur;Token queue10;int label,k,one; /標記接口char cu
16、rchar;/存儲當前待比較字符char curtocmp;/存儲當前棧頂字符ifstream ins;int trueadd,falseadd,end; int table58=1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,1,1,1,0,0,0,0,1,0,0; /存儲預測分析表,1為有產生式,0為沒有int i,j;int flag;struct Lcharchar char_ch;struct Lchar *next;Lchar,*temp,*top,*base;int right;/定義開關項bool init
17、ialize(char filename255);/文件打開初始化bool accidence();/詞法分析void print();/輸出單詞表void backpath(int,int);/回填出口void ERROR();void sentence();/分析語句void boolean();/ 分析E->id < id | id > id語句bool nexttoken();/讀下一單詞char newchar();void push();/進隊列char dosome(void);/算法函數void pushs(char pchar);/入棧函數void pop(
18、void);/出棧函數void doforpush(int t);/根據數組下標計算的值產生式入棧void changchartoint();/根據curchar,curtocmp轉為數字以判斷是否有產生式void semantic();/語法語義分析char LL1();/LL(1)文法分析void printQuad();/輸出四元式void ERROR(char str20);void AD_ADDRESS(int nlabel,OpKind nop,char npar1,char npar2,int naddress);void AD_RESULT(int nlabel,OpKind
19、nop,char npar1,char npar2, char nresult);void main() cout<<" "<<endl <<" 基于LL(1)法的條件語句語法語義分析程序 "<<endl <<" "<<endl;cout<<"輸入您要編譯編譯文件的文件名(文件名.txt):"char fname100;cin>>fname;if(!initialize(fname)/初始化文件return;if(!ac
20、cidence()/詞法分析return;char ch;while(1)if(ins.eof()/ifstream ins;文件輸入串,若文件已完。則break break;ins>>ch;/繼續讀入文件內容cout<<endl<<"詞法分析結果如下:"print();/打印詞法分析的結果cout<<endl;cout<<"詞法分析結束。"<<endl<<endl;semantic(); /語法語義分析cout<<endl<<"輸出四元
21、式:"<<endl;printQuad();/輸出四元式if(right=1)cout<<"分析成功"<<endl;elsecout<<"分析失敗"<<endl;cout<<"語法語義分析結束"<<endl;char newchar() char p; p=char(k); /int label,k,one; /標記接口k+;return p; /文件打開初始化bool initialize(char filename100) one=0;t
22、oken_index=0;/token表索引total_len=0;/token表有效長度quad_len=0;/四元表有效長度quad_index=0;/四元表索引label=0; /int label,k,one; /標記接口end=0;/ 前面定義的全局變量int trueadd,falseadd,end; k=48;ins.open(filename,ios:nocreate | ios:in);if(ins.fail()cout<<"文件打開出錯!"<<endl;return false;return true;/詞法分析bool acci
23、dence()int k=0;char buf16;/暫存數組單元char ch;while(1)ins>>ch;if(ins.fail()break;while(ch=' ')ins>>ch;if(ch='I')ins>>buf; /對關鍵字分析if(strcmp(buf,"F")=0)tokentabletotal_len+.type=$IF;else if(ch='T')ins>>buf;if(strcmp(buf,"HEN")=0)tokentable
24、total_len+.type=$THEN;else if(ch='E')ins>>buf;if(strcmp(buf,"LSE")=0)tokentabletotal_len+.type=$ELSE; /對關系運算符分析else if(ch='>')tokentabletotal_len+.type=$greater;else if(ch='<')tokentabletotal_len+.type=$less;else if(ch='=')tokentabletotal_len+.ty
25、pe=$equal; /對字母的分析else if(ch>='A'&& ch<='Z' )| (ch>='a' && ch<='z')tokentabletotal_len.type=$id;tokentabletotal_len+.ch=ch;/對數字的分析else if(ch>='0' && ch<='9')tokentabletotal_len.type=$num; tokentabletotal_len+.c
26、h =ch;Else /采用switch語句對運算符,括號分析switch (ch)case '+' :tokentabletotal_len.type=$add; tokentabletotal_len+.ch =ch; break; case '-' :tokentabletotal_len.type=$sub; tokentabletotal_len+.ch =ch; break; case '/' : tokentabletotal_len.type=$div; tokentabletotal_len+.ch =ch; break; ca
27、se '*' :tokentabletotal_len.type=$mul; tokentabletotal_len+.ch =ch;break; case '' :tokentabletotal_len.type=$fenhao; tokentabletotal_len+.ch =ch;break;case '(' :tokentabletotal_len.type=$left_paren; tokentabletotal_len+.ch =ch; break;case ')' :tokentabletotal_len.type
28、=$right_paren; tokentabletotal_len+.ch =ch;break; default:cout<<"!"<<endl; return true;/詞法分析結束/語法語義分析void semantic() if(!nexttoken()ERROR("s(0)"); cout<<"開始進行語法語義分析:"<<endl <<"所使用的產生式:"<<endl <<"<if語句> ->
29、 if E then S else S"<<endl <<"S->if E then p1 else P2"<<endl <<"E->a>b"<<endl <<"P1->x:=a*c"<<endl <<"P2->x:=b*c"<<endl <<"語法語義分析過程如下:"<<endl; if(cur.type=$IF) bool
30、ean();/分析布爾語句 if(!nexttoken()ERROR("S(0)");if(cur.type=$THEN) backpath(trueadd,quad_len);/回填出口sentence();/分析語句end=quad_len; AD_ADDRESS(quad_len,JUMP,'-','-',end); /產生跳轉地址的四元式 if(cur.type=$ELSE)backpath(falseadd,quad_len); sentence(); backpath(end,quad_len); elseERROR("
31、S(else)");elseERROR("S(then)"); elseERROR("S(if)");AD_RESULT(quad_len,END,0,0,'-'); /產生數值語句的四元式/讀下一單詞bool nexttoken()if(token_index>=total_len)return false;if(tokentabletoken_index.type=$fenhao)token_index+;cur.type=tokentabletoken_index.type;cur.ch=tokentabletoke
32、n_index.ch;token_index+;return true;/進隊列void push() one=0; while(tokentabletoken_index.type!=$fenhao) queueone.type=tokentabletoken_index.type;queueone.ch=tokentabletoken_index.ch;cout<<queueone.ch;token_index+;one+; queueone.type=$end; queueone.ch='#'cout<<queueone.ch;/隊列下一個字符vo
33、id next() cur.type=queueone.type; cur.ch =queueone.ch ; one+;/ 分析E->id < id | id > id語句void boolean() char a,b;int c; if(!nexttoken()ERROR("E(0)");if(cur.type=$id|cur.type=$num)a=cur.ch;if(!nexttoken()ERROR("E(0)"); if(cur.type=$greater|cur.type=$less) c=cur.type ;if(!ne
34、xttoken() ERROR("E(0)");if(cur.type=$id|cur.type=$num) b=cur.ch;else ERROR("E(id/num)"); if(c=$greater) trueadd=quad_len-1; falseadd=quad_len; AD_ADDRESS(quad_len,JG,a,b,trueadd); AD_ADDRESS(quad_len,JUMP,0,0,falseadd); else trueadd=quad_len; falseadd=quad_len+1; AD_ADDRESS(quad_
35、len,JL,a,b,trueadd); AD_ADDRESS(quad_len,JUMP,0,0,falseadd); else ERROR("E(id/num)");elseERROR("E(greater/less)");/分析語句void sentence() char rtn; char c;if(!nexttoken() ERROR("S(0)");if(cur.type=$id) c=cur.ch;if(!nexttoken() ERROR("S(0)");if(cur.type!=$equal)ER
36、ROR("S(equal)");push();one=0;rtn=LL1(); AD_RESULT(quad_len,equal,rtn,'-',c);nexttoken();while(cur.type=$id)c=cur.ch;if(!nexttoken() ERROR("S(0)");if(cur.type!=$equal)ERROR("S(equal)");push();one=0;rtn=LL1(); AD_RESULT(quad_len,equal,rtn,'-',c);nexttoken(
37、);/LL(1)文法分析char LL1() right=1;/開關項為1flag=0;char t;base=(struct Lchar *)malloc(sizeof(Lchar);/初始化堆棧base->next=NULL;base->char_ch='#'temp=(struct Lchar *)malloc(sizeof(Lchar);temp->next=base;temp->char_ch='E'top=temp;/初始化堆棧 t=dosome();/開始識別if(right)/如果開關項為1cout<<&quo
38、t;OK!"<<endl<<endl;elsecout<<"Error!"<<endl; return t;/入棧函數void pushs(char pchar) temp=(struct Lchar *)malloc(sizeof(Lchar);temp->char_ch=pchar;temp->next=top;top=temp;/出棧函數void pop(void) curtocmp=top->char_ch;if(top->char_ch!='#')top=top-&g
39、t;next; /根據數組下標計算的值產生式入棧void doforpush(int t) switch(t)case 0:pushs('A');pushs('T');break;case 5:pushs('A');pushs('T');break;case 11:pushs('A');pushs('T');pushs('+');break;case 12:pushs('A');pushs('T');pushs('-');break;c
40、ase 20:pushs('B');pushs('F');break;case 25:pushs('B');pushs('F');break;case 33:pushs('B');pushs('F');pushs('*');break;case 34:pushs('B');pushs('F');pushs('/');break;case 40:pushs('i');break;case 45:pushs(')
41、39;);pushs('E');pushs('(');/根據curchar,curtocmp轉為數字以判斷是否有產生式void changchartoint() switch(curtocmp)case 'A':i=1;break;case 'B':i=3;break;case 'E':i=0;break;case 'T':i=2;break;case 'F':i=4;switch(curchar)case 'i':j=0;break;case '+'
42、:j=1;break;case '-':j=2;break;case '*':j=3;break;case '/':j=4;break;case '(':j=5;break;case ')':j=6;break;case '#':j=7;/算法函數char dosome(void) int t,a=0;char bian1,bian2; OpKind opa;char c='$'next();for(;)pop();if(cur.type!=$id && cur.ty
43、pe!=$num)curchar=cur.ch;elsecurchar='i'cout<<endl;cout<<curchar<<" "<<curtocmp<<endl;if(curtocmp='#' && curchar='#')break;if(curtocmp='A' | curtocmp='B' | curtocmp='E' | curtocmp='T' | curtocmp=
44、39;F')/當前字符為非終結符 if(curtocmp!='#')/當前比較字符不為'#'changchartoint();if(j=0) a+;flag+; if(flag=1) if(c='$') bian1=cur.ch; elsebian1=c; else if(flag=3) bian2=cur.ch; flag=1; c=newchar(); AD_RESULT(quad_len,opa,bian1,bian2,c);/產生四元式else switch(j) case 1:opa=add;flag+;break; case
45、2:opa=sub;flag+;break; case 3:opa=mul;flag+;break; case 4:opa=div;flag+;if(tableij) /有產生式t=10*i+j; /計算產生式在數組中的位置doforpush(t);continue;else /沒有產生式right=0; /出錯break;else /當前比較字符為'#'if(curtocmp!=curchar)right=0;/出錯break;elsebreak; /正確else /當前字符為終結符if(curtocmp!=curchar)right=0; /出錯break;elsenext
46、(); /讀取下一個字符continue;if(a>1) return c;elsereturn bian1;/產生數值語句的四元式void AD_RESULT(int nlabel,OpKind nop,char npar1,char npar2, char nresult)quadquad_len.label=nlabel; quadquad_len.op=nop; quadquad_len.par1=npar1; quadquad_len.par2=npar2; quadquad_len.result=nresult; quad_len+; /產生跳轉地址的四元式void AD_A
47、DDRESS(int nlabel,OpKind nop,char npar1,char npar2,int naddress) quadquad_len.label=nlabel; quadquad_len.op=nop;quadquad_len.par1=npar1;quadquad_len.par2=npar2; quadquad_len.address=naddress;quad_len+; /回填出口void backpath(int nlabel,int addr)quadnlabel.address=addr;/錯誤處理void ERROR(char str20) label+;
48、cout<<endl;cout<<"error! "<<str<<endl;/詞法分析。輸出單詞表tokenvoid print() for(token_index=0;token_index<total_len;token_index+) if(token_index%100=0) cout<<endl;if(tokentabletoken_index.type=$IF)cout<<setw(2)<<"IF (0),"if(tokentabletoken_inde
49、x.type=$ELSE)cout<<setw(2)<<" ELSE (1),"if(tokentabletoken_index.type=$THEN)cout<<setw(2)<<" THEN (-),"if(tokentabletoken_index.type=$id) /字母cout<<setw(2)<<""<<tokentabletoken_index.ch<<" (25)"<<",&quo
50、t;if(tokentabletoken_index.type=$num) /數字cout<<setw(2)<<""<<tokentabletoken_index.ch<<" (26)"<<","if(tokentabletoken_index.type=$equal)cout<<setw(2)<<""<<'='<<" (18)"<<","i
51、f(tokentabletoken_index.type=$greater)cout<<setw(1)<<""<<'>'<<" (22)"<<","if(tokentabletoken_index.type=$less)cout<<setw(2)<<""<<'<'<<" (22)"<<"," if(tokentab
52、letoken_index.type=$add)cout<<setw(2)<<""<<'+'<<" (14)"<<","if(tokentabletoken_index.type=$sub)cout<<setw(2)<<""<<'-'<<" (15)"<<","if(tokentabletoken_index.type=$mu
53、l)cout<<setw(2)<<""<<'*'<<" (16)"<<","if(tokentabletoken_index.type=$div)cout<<setw(2)<<""<<'/'<<" (17)"<<","if(tokentabletoken_index.type=$fenhao)cout<<setw(
54、2)<<""<<''<<" (6)"<<","if(tokentabletoken_index.type=$left_paren)cout<<setw(2)<<""<<'('<<" (23)"<<","if(tokentabletoken_index.type=$right_paren)cout<<setw(2)<<
55、;""<<')'<<" (24)"<<","token_index=0;/輸出四元式void printQuad()for(int i=0;i<quad_len;i+)if(quadi.label>-1)cout<<"("<<quadi.label<<")"<<": "else cout<<endl;if(quadi.op=JG)cout<<
56、"("<<"j>,"<<quadi.par1<<","<<quadi.par2<<","<<quadi.address<<")"<<endl;else if(quadi.op=JL)cout<<"("<<"j<,"<<quadi.par1<<","<<quadi.par2
57、<<","<<quadi.address<<")"<<endl;else if(quadi.op=JUMP)cout<<"("<<"j ,"<<"-,-,"<<quadi.address<<")"<<endl;else if(quadi.op=equal) if(quadi-1.result=quadi.par1)cout<<"(&qu
58、ot;<<":= ,"<<"T"<<quadi.par1<<",-,"<<quadi.result<<")"<<endl;else cout<<"("<<":= ,"<<quadi.par1<<",-,"<<quadi.result<<")"<<endl;else if(quadi.op=END)cout<<"("<<"-,-,-,-"<<")"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稻谷加工設備維護與管理最佳實踐考核試卷
- 果蔬銷售中的智能物流與倉儲管理考核試卷
- 江蘇省南京市玄武外國語校2024-2025學年初三5月第二次月考生物試題含解析
- 吉林省白城市大安市第二中學2025屆高三第二學期期末(一模)英語試題含解析
- 四川工程職業技術學院《無線傳感器網絡》2023-2024學年第二學期期末試卷
- 宿遷學院《外科學實驗》2023-2024學年第一學期期末試卷
- 江蘇商貿職業學院《信息理論與編碼》2023-2024學年第二學期期末試卷
- 新疆維吾爾自治區喀什二中2024-2025學年招生全國統一考試高考仿真模擬卷數學試題(全國)試題含解析
- 吉林鐵道職業技術學院《傳統視覺藝術與現代設計》2023-2024學年第二學期期末試卷
- 新余市渝水區2025屆三年級數學第二學期期末學業質量監測試題含解析
- 山東省濟寧市鄒城市2024-2025學年高一下學期4月期中考試政治試題(含答案)
- 金華蘭溪市衛健系統普通高校招聘醫學類筆試真題2024
- 2025年初級社會工作者職業資格考試題庫含答案
- 2025年浙江省杭州市蕭山區中考一模數學模擬試卷(含詳解)
- 《食品生產經營企業落實食品安全主體責任監督管理規定》解讀與培訓
- T-BSRS 128-2024 核醫學放射性廢液快速處理技術要求
- 2025標準新版裝修合同范本
- 2025年日歷表(A4版含農歷可編輯)
- 廣東省深圳市南山外國語學校等學校聯考2023-2024學年七年級下學期期中數學試題
- 蠕墨鑄鐵項目可行性研究報告寫作范文
- ISP98《備用信用證慣例》中英文
評論
0/150
提交評論