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

正文內(nèi)容

編譯課程設(shè)計(jì)報(bào)告-wenkub.com

2025-01-18 18:06 本頁面
   

【正文】 } } initiate()。 strcat(strt,str)。ifdef DEBUG printf(%s\n,str)。 printf(Input the file pathamp。 } else if(ch==39。 } else if(ch==39。 ch=getch()。 ch=getch()。 pa_table tb。 } continue。 } printf(\n)。amp。amp。 while(p){ if(pID=200) ch = Vt[pID200].Tch。 return 0。39。 return 0。)){ /*Vt*/ if(X==a){ /*match?*/ printf(%c MATCH\n,a)。 if((getID(X)=200)amp。/*output the stack in char*/ printf(\t\t)。 if(step%20==0){ printf(Press any key to continue...\n)。S39。push(Vn[0].Nch)。/*used to transform the expression Xx1x2...xn to xn...x2x1*/ initstack()。}int analyzing(pa_table tb,char *str){/*analyse the string*/ int i,step=0。 while(ps){ /*scan select[]*/ VtID = psID。i++){ pExp = ppro[i]。*/ else { *(+j) = Vt[i].ID。) continue。il+1。 for(i=0。j++,ppt++) *ppt = NULL。 for(i=0。 means to get rid of 39。 /*initialization*/ r= = Vn_ID_next100。 } printf(\n)。 printf(%c,ch)。/*3 blanks*/ pt = *(+i*+j)。i++){ printf(\t%c ,Vn[*(+i)100].Nch)。j++) printf(\t%c ,Vt[*(+j)200].Tch)。 l=。}void printtb(pa_table tb){ /*first line*/ int i,j,r,l。 /*get the row*/ } for(j=0。 /*set the pointer*/}IDNode* get_tb_cell(pa_table tb,int VnID,int VtID){ /*get a cell of the table that VnID,VtID points to*/ int i,j。 /*get the row*/ } for(j=0。 } }void set_tb_cell(pa_table tb,int VnID,int VtID,IDNode *pExp){/*set a cell of the table*/ int i,j。 /*output the result*/ getch()。 /*ifCross judge if two links has same nodes,if yes,print out in form of {a,b,c,...}*/ if(t){ ifLL1 = 0。,39。,39。 printf()^SELECT(%c,Vn[ptID100].Nch)。 if(ID1==ID2){ pt = ppro[i]。i++){ ID1 = ppro[i]ID。 ifLL1=1。 } printf(Press any key to continue...\n)。 PrintLink(pt,39。 pt = ppro[i]next。 /*select*/ for(i=0。 printf(}\n)。 pt = Follow[i]。 printf(\nFollow set of Vn:\n)。)。 printf()={)。i=Line_Num。 char ch。 while(pt1){ printf(%c,Vt[pt1ID200].Tch)。 /*if can get NULL,add follow to select*/ }ifdef DEBUG for(i=0。39。i++){ LeftID = ppro[i]ID。 }endif}void getSelect(){/*get SELECT sets*/ int i,LeftID,ifgetnull。 printf(%d.,i)。 } }/*if*/ pt1 = pt1next。(pt1ID200)){/*Vn*/ pt2 = getFirstExp(pt1next,amp。i++){ pt1 = ppro[i]next。 /*stage 2*/ mark = 1。39。39。39。 int i,LeftID,ifgetnull。 while(pt){ printf(%c,Vt[ptID200].Tch)。 } }ifdef DEBUG for(j=0。39。39。amp。 pt = getFirstExp(pt,amp。endif IDNode *pt。 pt1=pt1next。jVn_ID_next100。)。*/ pt2 = CreateNewIDNode。39。ifgetnull)。 LeftID=pt1ID。 for(i=0。endif}void getFirstVn(){ int ifChanged,ifgetnull,i,j,LeftID。 default:ch=39。break。 for (i=0。 /*printout*/ifdef DEBUG for (i=0。 pt2=pt2next。 ifVnChanged = YES。 /*force to end while*/ } break。 if((*(pprotemp+i))next == NULL){/*the right NULL*/ Vn[(*(pprotemp+i))ID100].ifgetnull=YES。(pt2ID200)){/*Vn*/ switch(Vn[pt2ID100].ifgetnull){ case YES: pt1next = pt2next。 if(pt1){/*not NULL*/ LeftID = pt1ID。 while(ifVnChanged == YES){ ifVnChanged = NO。 pt1=pt1next。j=Line_Num。s expression exists if no,mark it NO*/ Vn[LeftID100].ifgetnull=NO。/*delet all Vn39。amp。i++){ pt1 = *(pprotemp+i)。 pt1=pt1next。i=Line_Num。 pt2 = pt2next。 pt2ID = pt1ID。 } /*Copy PProArray*/ for(i=0。 /*mark whether the ifgetnull changes in stage 3*/ char ch。*/ int i,j,LeftID。 /*if not LL(1),print the remaining 39。 r = r||1。,39。*/ while(pt1){ ID1 = pt1ID。 int ID1,ID2,mark=0,r=0。 if(Vn[pExpID100].ifgetnull){ pExp = pExpnext。/*in case that Samp。 if (pExpID==getVtID(39。ptnext = NULL。 while(1){ if(!pExp){/*get to the tail*/ *ifgetnull = 1。39。(ptID==VnID)) return 0。i=Line_Num。 }}int CheckVnNoExist(IDNode **pprotemp,int VnID){/*check whether Vn39。 if(insamp。 while(pt){ num = ptID。(ptID==VnID)){ DeleteLink(pt)。i=Line_Num。 }}void DeleteAllVnExp(IDNode **pprotemp,int VnID){/*delet all Vn39。}void DeleteLink(IDNode *p){/*delete the link that p points to*/ IDNode *pt。 ptnext=NULL。*/ if(ifdelsrc) pt=ps。/*return value*/ IDNode *ps = psrc,*pt。 } }}int add2link(IDNode **pdes,IDNode *psrc,int ifdelsrc,int ifcopyNULL){ /*the return value notes if the *pdes is changed*/ int mark=0,NULLID=getVtID(39。 ptd1next = pt。 ptd2 = ptd2next。 else cID = 1。 return 0。} else if(ptID=(*pdes)ID){/*at the head*/ if(ptID!=(*pdes)ID){ ptnext = *pdes。 ptID=pNodeID。t insert,according to iffreeit,free pNode or not, and return 0,else return 1*/ IDNode *ptd1,*ptd2,*pt=pNode。 while(pt){ printf(%d,ptID)。 for(i=0。 for (i=0。 for (i=0。 for (i=0。 for (i=0。 } printf(\nPress any key to continue...\n)。 getch()。 } } ch = fgetc(fp)。 if (pnewnode == NULL){ /*notes CR*/ Line_Num++。 } ifavailable = 1。) { idcurrent = SeekoverVt(ch)。\n39。 /*add it in Vn*/ Vn[Vn_ID_next100].Nch = ch。 (ch=39。 /*a new expression*/ } else if ((ch=39。|39。 while (ch != EOF){ ifavailable = 0。 /*notes whether to be transformed*/ IDNode *pnewnode = NULL。 } } return r。 for (。i++){ if (ch == Vn[i].Nch){ r = Vn[i].ID。 return i。 } return 0。}int getVtID(char ch){/*get the ID of Vt according to itselt*/ int i=0。 for (。 FirstRight[i] = NULL。i100。 Line_Num = 1。 存在的不足當(dāng)然,由于能力所限,本設(shè)計(jì)也有一些不足:其一,沒有實(shí)現(xiàn)實(shí)時(shí)輸入文法,只采用了文件輸入;其二,對(duì)于文法的要求過于苛刻,文法符號(hào)只能由一位字符構(gòu)成;其三,程序中過多地采用了全局變量,模塊化的程度太低;其四,程序幾乎處理錯(cuò)誤能力很低,遇非規(guī)則輸入則死機(jī)。本設(shè)計(jì)的設(shè)計(jì)亮點(diǎn)在于使用單鏈表集存儲(chǔ)關(guān)鍵數(shù)據(jù),實(shí)現(xiàn)了判定過程的高效率;同時(shí)針對(duì)鏈表操作的復(fù)雜和易出錯(cuò)的特點(diǎn),設(shè)計(jì)者設(shè)計(jì)出了幾個(gè)基本卻功能強(qiáng)大的鏈表操作函數(shù),如insert2link()、add2link(),提供給各主要函數(shù)調(diào)用。根據(jù)屏幕提示,輸入符號(hào)串i+i*i,由程序判定是否是文法中的句子,分析過程在打印在屏幕上,如圖49所示。 測(cè)試二測(cè)試文法二的測(cè)試數(shù)據(jù)如下:ETDD+TDDεTFSS*FSSε
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1