2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《編譯原理課程設(shè)計》</p><p>  題目:《PL/0編譯程序改進及完善》</p><p><b>  設(shè)計題目:</b></p><p>  PL/0編譯程序改進及完善。</p><p><b>  設(shè)計目的:</b></p><p>  閱讀研究

2、,改進設(shè)計和調(diào)試一個簡單的編譯程序。加深對編譯理論和過程的了解。</p><p><b>  設(shè)計要求:</b></p><p>  1.有選擇的對PL/0編譯源程序補充,完善.</p><p>  2.設(shè)計編譯典型的運行實例,以便反應(yīng)出自己作出改進后的編

3、具有的功能。</p><p><b>  設(shè)計思想:</b></p><p>  PL/0語言可以看成PASCAL語言的子集,它的編譯程序是一個編譯解釋執(zhí)行系統(tǒng)。PL/0的目標(biāo)程序為假想棧式計算機的匯編語言,與具體計算機無關(guān)。 </p><p>  PL/0的編譯程序和目標(biāo)程序的解釋執(zhí)行程序都是用PASCAL語言書寫的,因此PL/0語言可在配備

4、PASCAL語言的任何機器上實現(xiàn) 。其編譯過程采用一趟掃描方式,以語法分析程序為核心,詞法分析和代碼生成程序都作為一個獨立的過程,當(dāng)語法分析需要讀單詞時就調(diào)用詞法分析程序,而當(dāng)語法分析正確需要生成相應(yīng)的目標(biāo)代碼時,則調(diào)用代碼生成程序。 </p><p>  用表格管理程序建立變量、常量和過程表示符的說明與引用之間的信息聯(lián)系。 </p><p>  當(dāng)源程序編譯正確時,PL/0編譯程序自動調(diào)

5、用解釋執(zhí)行程序,對目標(biāo)代碼進行解釋執(zhí)行,并按用戶程序的要求輸入數(shù)據(jù)和輸出運行結(jié)果。 </p><p><b>  主要變量說明:</b></p><p><b>  /*變量說明*/</b></p><p>  FILE* fas;/*輸出名字表*/</p><p>  FILE* fa

6、;/*輸出虛擬機代碼*/</p><p>  FILE* fa1;/*輸出源文件及其各行對應(yīng)的首地址*/</p><p>  FILE* fa2;/*輸出結(jié)果*/</p><p>  bool listswitch;/*顯示虛擬機代碼與否*/</p><p>  bool tableswitch;

7、/*顯示名字表與否*/</p><p>  char ch;/*獲取字符的緩沖區(qū),getch使用*/</p><p>  enum symbol sym;/*當(dāng)前的符號*/</p><p>  char id[al+1];/*當(dāng)前ident,多出的一個字節(jié)用于存放0*/</p><p>  int num;

8、/*當(dāng)前number*/</p><p>  int cc,ll;/*getch使用的計數(shù)器,cc表示當(dāng)前字符(ch)的位置*/</p><p>  int cx;/*虛擬機代碼指針,取值范圍[0,cxmax-1]*/</p><p>  char line[81];/*讀取行緩沖區(qū)*/</p><

9、p>  char a[al+1];/*臨時符號,多出的一個字節(jié)用于存放0*/</p><p>  struct instruction code[cxmax];/*存放虛擬機代碼的數(shù)組*/</p><p>  char word[norw][al];/*保留字*/</p><p>  enum symbol wsym[norw];/*保

10、留字對應(yīng)的符號值*/</p><p>  enum symbol ssym[256];/*單字符的符號值*/</p><p>  char mnemonic[fctnum][5];/*虛擬機代碼指令名稱*/</p><p>  bool declbegsys[symnum];/*表示聲明開始的符號集合*/</p><p>  b

11、ool statbegsys[symnum];/*表示語句開始的符號集合*/</p><p>  bool facbegsys[symnum];/*表示因子開始的符號集合*/</p><p><b>  /* 目標(biāo)指令*/</b></p><p>  1、LIT:將常量值取到運行棧頂.</p><p>  2、

12、LOD:將變量放到運行棧頂.</p><p>  3、STO:將棧頂?shù)膬?nèi)容送入某變量單元中.</p><p>  4、CAL:調(diào)用過程的指令.</p><p>  5、INT:為被調(diào)用的過程(或主程序)在運行棧中開辟數(shù)據(jù)區(qū).</p><p>  6、JMP:無條件轉(zhuǎn)移指令.</p><p>  7、JPC:條件轉(zhuǎn)移指令

13、,當(dāng)棧頂?shù)牟紶栔禐檎鏁r, 順序執(zhí)行,否則轉(zhuǎn)向域的地址.</p><p>  8、OPR:系運算符和算術(shù)運算指令.將棧頂和次棧頂?shù)膬?nèi)容進行運算,結(jié)果存放棧頂.</p><p><b>  /*函數(shù)說明*/</b></p><p>  void error(int n,int line)</p><p>  說明:出錯處理函

14、數(shù),打印出錯信息,錯誤總數(shù)加1。</p><p>  int getch()</p><p>  說明:讀取字符函數(shù),返回字符。</p><p>  int getsym()</p><p>  說明:讀取下一單詞符號</p><p>  int position(char* idt,int tx);</p>

15、;<p>  說明:字符在符號表中位置查詢函數(shù)</p><p>  返回值:返回標(biāo)識符在符號表中的索引</p><p>  int gen(enum fct x,int y,int z);</p><p>  說明:生成P代碼指令</p><p>  int test(bool* s1,bool* s2,int n);</

16、p><p>  說明:測試當(dāng)前符號是否合法,若不合法,打印出錯信息并進行跳讀</p><p>  void enter(enum object k, int* ptx,int lev,int* pdx);</p><p>  說明:在符號表中登錄分程序說明部分出現(xiàn)的名字</p><p>  int constdeclaration(int* pt

17、x,int lev,int* pdx);</p><p>  說明:處理常量說明,并將常量名及相應(yīng)信息填入符號表</p><p>  int vardeclaration(int* ptx,int lev,int* pdx);</p><p>  說明:處理變量說明,并將變量名及相應(yīng)信息填入符號表</p><p>  int statemen

18、t(bool* fsys,int* ptx,int lev);</p><p>  說明:分析處理各種語句</p><p>  int condition(bool* fsys,int* ptx,int lev);</p><p>  說明:分析處理條件式</p><p>  返回值:由參數(shù)x返回求值結(jié)果的類型</p><

19、p>  void listcode(int cx0);</p><p><b>  說明:打印P代碼</b></p><p>  int block(int lev,int tx,bool* fsys);</p><p>  說明:PL0編譯器對外的接口,由main()調(diào)用</p><p>  void inter

20、pret();</p><p>  說明:解釋執(zhí)行P代碼</p><p>  int base(int l,int* s,int b);</p><p>  說明:基地址處理函數(shù)</p><p>  返回值:返回變量的基地址值</p><p>  int expression(bool* fsys,int* ptx,i

21、nt lev)</p><p>  說明:表達式處理,由參數(shù)返回結(jié)果類型</p><p>  int term(bool* fsys,int* ptx,int lev);</p><p>  說明:項處理,由參數(shù)返回結(jié)果類型</p><p>  int factor(bool* fsys,int* ptx,int lev);</p>

22、;<p>  說明:因子處理,由參數(shù)返回結(jié)果類型</p><p>  int inset(int e,bool* s);</p><p>  int addset(bool* sr,bool* s1,bool*s2,int n);</p><p>  int subset(bool* sr,bool* s1,bool*s2,int n);</p&

23、gt;<p>  int mulset(bool* sr,bool* s1,bool*s2,int n);</p><p>  說明:使用數(shù)組實現(xiàn)集合的集合運算</p><p><b>  算法描述:</b></p><p>  在原算法基礎(chǔ)上我進行了一下修改</p><p>  1.增加單詞:保留字 EL

24、SE</p><p>  2.運算符 +=,-=,++,――</p><p>  3.增加條件語句的ELSE子句</p><p>  為此添加了ELSESYM,為了實現(xiàn)如上要求的擴充,必須再正確地添加JIAJIA,JIANJIAN,JIADENG,JIANDENG等幾個個SYMBOL,具體必須包括以下三個方面的修改或添加: </p><p>

25、  在枚舉變量SYMBOL的定義內(nèi)添加JIAJIA,JIANJIAN,JIADENG,JIANDENG和ELSESYM;然后在在源程序文件中加上保留字ELSE,為了識別例如A:=++A之類的功能,還需在因子開始符號中加入JIAJIA,JIANJIAN。</p><p>  這樣,我們就正確地加入了五個將用來作為擴充語言功能的SYM。</p><p>  為了實現(xiàn)功能首先需要在詞法分析中加入

26、識別單詞功能</p><p>  增加JIAJIA(++)、JIADENG(+=)、JIANJIAN(——)、JIANDENG(—=)的詞法分析,代碼修改如下: </p><p>  if(ch=='+')</p><p><b>  {</b></p><p><b>  getchdo;&l

27、t;/b></p><p>  if(ch=='=')</p><p><b>  {</b></p><p>  sym=jiadeng;</p><p><b>  getchdo;</b></p><p><b>  }</b>

28、;</p><p><b>  else</b></p><p><b>  {</b></p><p>  if(ch=='+')</p><p><b>  {</b></p><p>  sym=jiajia;</p>

29、<p><b>  getchdo;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  sym=plus;</b&g

30、t;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>

31、</p><p>  if(ch=='-')</p><p><b>  {</b></p><p><b>  getchdo;</b></p><p>  if(ch=='=')</p><p><b>  {</b>

32、</p><p>  sym=jiandeng;</p><p><b>  getchdo;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>&l

33、t;/p><p>  if(ch=='-')</p><p><b>  {</b></p><p>  sym=jianjian;</p><p><b>  getchdo;</b></p><p><b>  }</b></p&g

34、t;<p><b>  else</b></p><p><b>  {</b></p><p>  sym=minus;</p><p><b>  }</b></p><p><b>  }</b></p>&

35、lt;p>  }這樣,我們就完成了對詞法分析器的修改。然后JIAJIA.,JIANJIAN操作的語法圖有如下兩個: </p><p><b>  語 句 </b></p><p><b>  因 子 </b></p><p>  根據(jù)以上語法圖,我們只要對語句處理程序和因子處理程序進行修改添加,即可實現(xiàn)增加INC和

36、DEC操作,首先對語句處理程序進行如下修改: </p><p>  語句中形如++A,——A修改:</p><p>  if(sym==jiajia||sym==jianjian)//++a,--a</p><p><b>  {</b></p><p>  if(sym==jiajia)</p><

37、p><b>  {</b></p><p><b>  getsymdo;</b></p><p>  if(sym==ident)</p><p><b>  {</b></p><p>  i=position(id,*ptx);</p><p&g

38、t;<b>  if(i==0)</b></p><p><b>  {</b></p><p>  error(11);</p><p><b>  }</b></p><p><b>  else</b></p><p><

39、;b>  {</b></p><p>  if(table[i].kind!=variable)</p><p><b>  {</b></p><p>  error(12);</p><p><b>  i=0;</b></p><p><b>

40、;  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  gendo(lod,lev-table[i].level,table[i].adr);//生成指令,將變量放到棧頂</p><p>  gendo(lit,0,1)

41、;//生成指令,把常量取到運行棧頂</p><p>  gendo(opr,0,2);//生成指令,棧頂加次棧頂</p><p>  gendo(sto,lev-table[i].level,table[i].adr);//生成指令,結(jié)果寫回變量地址單元</p><p><b>  getsymdo;</b></p><

42、;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else //--a</p><p><b>

43、  {</b></p><p><b>  getsymdo;</b></p><p>  if(sym==ident)</p><p><b>  {</b></p><p>  i=position(id,*ptx);</p><p><b>  i

44、f(i==0)</b></p><p><b>  {</b></p><p>  error(11);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</

45、b></p><p>  if(table[i].kind!=variable)</p><p><b>  {</b></p><p>  error(12);</p><p><b>  i=0;</b></p><p><b>  }</b>

46、</p><p><b>  else</b></p><p><b>  {</b></p><p>  gendo(lod,lev-table[i].level,table[i].adr);//生成指令,取變量放大棧頂</p><p>  gendo(lit,0,1);//生成指令,取常數(shù)到棧頂

47、</p><p>  gendo(opr,0,3);//生成指令,棧頂減次棧頂</p><p>  gendo(sto,lev-table[i].level,table[i].adr);//生成指令,結(jié)果寫回變量地址單元</p><p><b>  getsymdo;</b></p><p><b>  }&l

48、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  隨后修改如A++,A——</p><p>  if(sym==jiajia||sym==jian

49、jian)//a++,a--</p><p><b>  {</b></p><p>  addop=sym;</p><p>  gendo(lod,lev-table[i].level,table[i].adr); //把變量的值壓入棧</p><p>  gendo(lit,0,1);</p>

50、;<p>  if(addop==jiajia)</p><p><b>  {</b></p><p>  gendo(opr,0,2); </p><p>  gendo(sto,lev-table[i].level,table[i].adr); </p><p><b>  }</b&

51、gt;</p><p><b>  else</b></p><p><b>  {</b></p><p>  gendo(opr,0,3);</p><p>  gendo(sto,lev-table[i].level,table[i].adr); </p><p>&l

52、t;b>  }</b></p><p><b>  getsymdo;</b></p><p><b>  }</b></p><p>  這樣,對JIAJIA和JIANJIAN操作就擴充完成。 擴充+=和-=操作 這兩個操作都是一種對變量進行賦值的形式,其合法的語句形式的語法圖如下所示: 根據(jù)圖

53、3,在已經(jīng)處理部分的基礎(chǔ)上,添加對+=運算和-=運算的擴充,相關(guān)代碼添加如下: </p><p>  if(sym==jiadeng||sym==jiandeng)</p><p><b>  {</b></p><p>  addop=sym;</p><p><b>  getsymdo;</b>

54、;</p><p>  gendo(lod,lev-table[i].level,table[i].adr); /*把變量的值壓入棧*/</p><p>  factordo(nxtlev,ptx,lev);</p><p>  if(addop==jiadeng)</p><p><b>  {</b>&l

55、t;/p><p>  gendo(opr,0,2);/*生成加法指令*/</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  gendo(opr,0,3);

56、/*生成減法指令*/</p><p><b>  }</b></p><p>  }這樣就完成了對+=運算和-=運算的添加。 </p><p>  增加條件語句else</p><p><b>  該語句的語法圖如</b></p><p>  只要在STATEMENT修改如

57、下代碼:</p><p>  if(sym==elsesym){</p><p><b>  cx2=cx;</b></p><p>  gendo(jmp,0,0);</p><p>  code[cx1].a=cx;</p><p>  getsymdo;</p>

58、;<p>  statementdo(nxtlev,ptx,lev);/*處理else后的語句*/</p><p>  code[cx2].a=cx;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {<

59、/b></p><p>  code[cx1].a=cx;</p><p><b>  }</b></p><p>  這樣ELSE語句擴充完畢</p><p>  為了顯示錯誤更清晰我增加了顯示錯誤原因的語句</p><p>  具體代碼在ERROR中實現(xiàn)</p><p

60、><b>  switch(n)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  printf("常數(shù)說明中的“=”寫成了“:=”。\n");</p><p><b> 

61、 break; </b></p><p><b>  case 2:</b></p><p>  printf("常數(shù)說明中的“=”后應(yīng)是數(shù)字。\n");</p><p><b>  break;</b></p><p><b>  case 3:</

62、b></p><p>  printf("常數(shù)說明中的標(biāo)識符后應(yīng)是“=”。\n");</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  printf("const,var,procedure后

63、應(yīng)為標(biāo)識符。\n");</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  printf("漏掉了“,”或“;”。\n");</p><p><b>  break;</b>&l

64、t;/p><p><b>  case 6:</b></p><p>  printf("過程說明后的符號不正確(應(yīng)是語句開始符,或過程定義符)。\n");</p><p><b>  break;</b></p><p><b>  case 7:</b>&l

65、t;/p><p>  printf("應(yīng)是語句開始符。\n");</p><p><b>  break;</b></p><p><b>  case 8:</b></p><p>  printf("程序體內(nèi)語句部分的后跟符號不正確。\n");</p&g

66、t;<p><b>  break;</b></p><p><b>  case 9:</b></p><p>  printf("程序結(jié)尾丟了句號“.”。\n");</p><p><b>  break;</b></p><p><

67、b>  case 10:</b></p><p>  printf("語句之間漏了“;”。\n");</p><p><b>  break;</b></p><p><b>  case 11:</b></p><p>  printf("標(biāo)志符未說

68、明。\n");</p><p><b>  break;</b></p><p><b>  case 12:</b></p><p>  printf("在“:=”或“+=”或“-=”左部標(biāo)志符屬性應(yīng)是變量。\n");</p><p><b>  break

69、;</b></p><p><b>  case 13:</b></p><p>  printf("缺少“:=”或“+=”或“-=”。\n");</p><p><b>  break;</b></p><p><b>  case 14:</b&g

70、t;</p><p>  printf("call后應(yīng)為標(biāo)志符。\n");</p><p><b>  break;</b></p><p><b>  case 15:</b></p><p>  printf("call后標(biāo)志符屬性應(yīng)為過程。\n");&l

71、t;/p><p><b>  break;</b></p><p><b>  case 16:</b></p><p>  printf("條件語句中丟了“then”。\n");</p><p><b>  break;</b></p><

72、p><b>  case 17:</b></p><p>  printf("丟了“end”或“;”。\n");</p><p><b>  break;</b></p><p><b>  case 18:</b></p><p>  printf(

73、"while型循環(huán)語句中丟了“do”。\n");</p><p><b>  break;</b></p><p><b>  case 19:</b></p><p>  printf("語句后的符號不正確。\n");</p><p><b>  

74、break;</b></p><p><b>  case 20:</b></p><p>  printf("應(yīng)為關(guān)系運算符。\n");</p><p><b>  break;</b></p><p><b>  case 21:</b>&l

75、t;/p><p>  printf("表達式內(nèi)標(biāo)志符屬性不能是過程。\n");</p><p><b>  break;</b></p><p><b>  case 22:</b></p><p>  printf("表達式內(nèi)中漏掉右括號“)”。\n");<

76、;/p><p><b>  break;</b></p><p><b>  case 23:</b></p><p>  printf("因子后的非法符號。\n");</p><p><b>  break;</b></p><p>&

77、lt;b>  case 24:</b></p><p>  printf("表達式的開始符不能是此符號。\n");</p><p><b>  break;</b></p><p><b>  case 30:</b></p><p>  printf(&quo

78、t;number的最大位數(shù)為。\n");</p><p><b>  break;</b></p><p><b>  case 31:</b></p><p>  printf("數(shù)越界。\n");</p><p><b>  break;</b>

79、;</p><p><b>  case 32:</b></p><p>  printf("最大的嵌套層數(shù)不能大于層。\n");</p><p><b>  break;</b></p><p><b>  case 33:</b></p>

80、<p>  printf("格式錯誤,應(yīng)是右括號。\n");</p><p><b>  break;</b></p><p><b>  case 34:</b></p><p>  printf("格式錯誤,應(yīng)是左括號。\n");</p><p>

81、;<b>  break;</b></p><p><b>  case 35:</b></p><p>  printf("read()中的變量名沒有聲明過。\n");</p><p><b>  break;</b></p><p><b> 

82、 case 36:</b></p><p>  printf("“;”寫成了“,”。\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  這樣代碼修改完畢</b><

83、/p><p>  我還改進了一個形如var a;b;或者const a;b;語句錯誤</p><p>  添加錯誤編號36(“;”寫成了“,”)。</p><p>  if(sym==semicolon)</p><p><b>  {</b></p><p><b>  getsymdo&

84、lt;/b></p><p>  if(sym==ident)</p><p><b>  { </b></p><p>  error(36);</p><p><b>  }</b></p><p>  改變了聲明符號時無法重復(fù)或無法改變聲明順序。</p>

85、;<p>  具體方法是講源代碼中 </p><p>  memcpy(nxtlev,statbegsys,sizeof(bool)*symnum);</p><p>  nxtlev[ident]=true;</p><p>  nxtlev[period]=true;</p><p>  testdo(nxtl

86、ev,declbegsys,7);</p><p>  增加VARSYM與CONSTSYM后跟符號集</p><p><b>  修改后變?yōu)?lt;/b></p><p>  memcpy(nxtlev,statbegsys,sizeof(bool)*symnum);</p><p>  nxtlev[ident]=true;

87、</p><p>  nxtlev[period]=true;</p><p>  nxtlev[constsym]=true;</p><p>  nxtlev[varsym]=true;</p><p>  testdo(nxtlev,declbegsys,7);</p><p>  最后為了實行人性化操作我增加了

88、編譯程序循環(huán)執(zhí)行的方法</p><p>  具體方法是在主函數(shù)中加入</p><p><b>  while(1)</b></p><p>  { //保證用戶連續(xù)運行程序</p><p>  ..............</

89、p><p>  ..............</p><p>  ..............</p><p>  getchar(); //退出程序的字符標(biāo)號</p><p>  printf("\n退出程序請按q鍵,繼續(xù)運行請按其它鍵!\t");</p><p>  scanf("%c&q

90、uot;,&ch);</p><p>  if(ch=='q')</p><p>  break;//退出程序</p><p><b>  else</b></p><p>  system("cls");//清屏*/</p><p><b>

91、  }</b></p><p><b>  調(diào)試情況:</b></p><p>  形如var a;b;或者const a;b;語句錯誤</p><p>  文件名為test1.txt</p><p><b>  var a;</b></p><p>  cons

92、t d=2;</p><p><b>  var b;</b></p><p>  const c=1;</p><p><b>  begin</b></p><p><b>  a:=d;</b></p><p><b>  b:=c;&l

93、t;/b></p><p><b>  write(a);</b></p><p><b>  write(b)</b></p><p><b>  end.</b></p><p><b>  改動前程序執(zhí)行情況</b></p>&l

94、t;p><b>  改動后程序執(zhí)行情況</b></p><p>  我還改進了一個形如var a;b;或者const a;b;語句錯誤</p><p>  添加錯誤編號36(“;”寫成了“,”)。</p><p>  文件名為test2.txt</p><p><b>  var a;b;</b&g

95、t;</p><p>  const c=1;b:=2;</p><p><b>  begin</b></p><p><b>  a:=c;</b></p><p><b>  write(a)</b></p><p><b>  end.

96、</b></p><p><b>  程序執(zhí)行情況:</b></p><p>  調(diào)試if then else</p><p>  文件名為else.txt</p><p><b>  var a,b;</b></p><p><b>  begin&l

97、t;/b></p><p><b>  read(a);</b></p><p><b>  if a<0</b></p><p><b>  then</b></p><p><b>  b:=-1</b></p><p&

98、gt;<b>  else</b></p><p><b>  b:=1;</b></p><p><b>  write(a);</b></p><p><b>  write(b)</b></p><p><b>  end.</b&g

99、t;</p><p><b>  運行結(jié)果:</b></p><p><b>  調(diào)試++,――</b></p><p>  文件名為++.txt</p><p>  var a,b,c,d;</p><p><b>  begin</b></p&

100、gt;<p><b>  a:=1;</b></p><p><b>  b:=2;</b></p><p><b>  c:=9; </b></p><p><b>  c++;</b></p><p><b>  c--;<

101、;/b></p><p><b>  --c;</b></p><p><b>  ++c;</b></p><p><b>  a+=--c;</b></p><p><b>  a-=c--;</b></p><p>  

102、d:=(++b)+c;</p><p><b>  write(b);</b></p><p><b>  write(c);</b></p><p><b>  write(d);</b></p><p><b>  write(a)</b></p

103、><p><b>  end.</b></p><p><b>  運行結(jié)果:</b></p><p><b>  設(shè)計技巧:</b></p><p>  萬事無捷徑,只有一步一步腳踏實地。只有相對的技巧,就是對原程序的錯誤編號,標(biāo)記。對改動的錯誤利用編譯程序的斷點功能檢查錯誤。書

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論