Pascal語言基礎(chǔ)知識(shí) 循環(huán)_第1頁
Pascal語言基礎(chǔ)知識(shí) 循環(huán)_第2頁
Pascal語言基礎(chǔ)知識(shí) 循環(huán)_第3頁
Pascal語言基礎(chǔ)知識(shí) 循環(huán)_第4頁
Pascal語言基礎(chǔ)知識(shí) 循環(huán)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序的三種基本結(jié)構(gòu)程序的三種基本結(jié)構(gòu)一、順序結(jié)構(gòu)一、順序結(jié)構(gòu) 二、選擇結(jié)構(gòu)二、選擇結(jié)構(gòu) (if (if 、case)case) 三、循環(huán)結(jié)構(gòu)三、循環(huán)結(jié)構(gòu)(for(for、whilewhile、repeat) repeat) 例:輸入三角形的三條邊例:輸入三角形的三條邊a,b,c,輸出三角形的,輸出三角形的面積。(面積。(a,b,c是正整數(shù)是正整數(shù)c)and(a+cb)and(b+ca) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); writeln(s:0:2); end else writeln(No answer);end.無無“

2、;”二、二、 選擇結(jié)構(gòu)選擇結(jié)構(gòu)1 1if if 語句:語句:功能:執(zhí)行過程功能:執(zhí)行過程說明:說明:1 1)該語句為一個(gè)語句;)該語句為一個(gè)語句; 2 2)條件是一個(gè)布爾表達(dá)式或一個(gè)布爾變量,)條件是一個(gè)布爾表達(dá)式或一個(gè)布爾變量,then then 和和elseelse后的后的語句可以是單個(gè)語句,當(dāng)需要多條語句時(shí),用語句可以是單個(gè)語句,當(dāng)需要多條語句時(shí),用beginbegin和和endend括起括起來構(gòu)成復(fù)合語句。來構(gòu)成復(fù)合語句。 3 3)當(dāng)布爾表達(dá)式的值為真,則執(zhí)行當(dāng)布爾表達(dá)式的值為真,則執(zhí)行thenthen后面的語句,值為假時(shí)有兩種后面的語句,值為假時(shí)有兩種情況:要么什么也不做,要么執(zhí)行情

3、況:要么什么也不做,要么執(zhí)行elseelse后面的語句。后面的語句。 注意注意:else:else前面沒有分號(hào)前面沒有分號(hào). .格式一:格式一: if then ;格式二:格式二: if then else ;邏輯、算術(shù)、關(guān)系運(yùn)算符的運(yùn)算次序:邏輯、算術(shù)、關(guān)系運(yùn)算符的運(yùn)算次序:n 括號(hào)n 函數(shù)、notn *、/、div、mod、andn +、-、orn 、=、=、=、補(bǔ)充補(bǔ)充3case 語句:分情況語句(多分支語句)格式:case 表達(dá)式 of 常數(shù)表1:語句1; 常數(shù)表2:語句2; 常數(shù)表n:語句n; else 語句n+1 end;功能:執(zhí)行過程說明:1)end 與case 對(duì)應(yīng) 2)表達(dá)式

4、的類型通常是整型、字符型 3)常量表是常量,其類型與表達(dá)式的類型要一致。常量表中的常量不能重復(fù)?!纠纠?】:輸入兩個(gè)數(shù)(均不為零)及一個(gè)算術(shù)運(yùn)算符,輸輸入兩個(gè)數(shù)(均不為零)及一個(gè)算術(shù)運(yùn)算符,輸出其運(yùn)算的結(jié)果出其運(yùn)算的結(jié)果程序代碼:程序代碼:program ex3(input,output); varx,y,s:real;ch:char;begin writeln(input x & y & ch:); readln(x,y); readln(ch); case ch of +:s:=x+y; -:s:=x-y; *:s:=x*y; /:s:=x/y end; writeln(x,ch,y,=

5、,s) end.三、三、 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)的三種形式:循環(huán)結(jié)構(gòu)的三種形式: 循環(huán)結(jié)構(gòu)程序通常由三種的循環(huán)語句來實(shí)現(xiàn)。它們分別為循環(huán)結(jié)構(gòu)程序通常由三種的循環(huán)語句來實(shí)現(xiàn)。它們分別為 FOR循環(huán)、當(dāng)循環(huán)循環(huán)、當(dāng)循環(huán)while、直到、直到repeat循環(huán)。循環(huán)。 通常將一組重復(fù)執(zhí)行的語句稱為循環(huán)體,而控制重復(fù)執(zhí)行或終止通常將一組重復(fù)執(zhí)行的語句稱為循環(huán)體,而控制重復(fù)執(zhí)行或終止執(zhí)行由重復(fù)終止條件決定。執(zhí)行由重復(fù)終止條件決定。 因此,重復(fù)語句是由因此,重復(fù)語句是由循環(huán)體循環(huán)體及及重復(fù)終止條件重復(fù)終止條件兩部分組成。兩部分組成。1for語句1 1forfor語句:(語句:(“計(jì)數(shù)循環(huán)計(jì)數(shù)循環(huán)”):就是

6、將規(guī)定循環(huán)體重復(fù)執(zhí)行的次數(shù)。):就是將規(guī)定循環(huán)體重復(fù)執(zhí)行的次數(shù)。格式:格式:for for 控制變量:控制變量:= =初值初值 to to 終值終值 dodo 循環(huán)體語句;循環(huán)體語句; for for 控制變量:控制變量:= =初值初值 downto downto 終值終值 dodo 循環(huán)體語句;循環(huán)體語句;2 2、forfor語句執(zhí)行過程語句執(zhí)行過程 先將初值賦給左邊的變量(稱為循環(huán)控制變量);先將初值賦給左邊的變量(稱為循環(huán)控制變量); 判斷循環(huán)控制變量的值是否已判斷循環(huán)控制變量的值是否已“超過超過”終值,如已超過,則跳到步驟終值,如已超過,則跳到步驟; 如果末超過終值,則執(zhí)行如果末超過終

7、值,則執(zhí)行dodo后面的那個(gè)語句(稱為循環(huán)體);后面的那個(gè)語句(稱為循環(huán)體); 循環(huán)變量遞增(對(duì)循環(huán)變量遞增(對(duì)toto)或遞減(對(duì))或遞減(對(duì)downto)downto); 返回步驟返回步驟; 循環(huán)結(jié)束,執(zhí)行循環(huán)結(jié)束,執(zhí)行forfor循環(huán)下面的一個(gè)語句。循環(huán)下面的一個(gè)語句。3 3、說明:、說明: 1) 1) 初值和終值可以是表達(dá)式,控制變量和初值、終值的類型相同,且必須初值和終值可以是表達(dá)式,控制變量和初值、終值的類型相同,且必須是整型、布爾型和字符型等順序類型,不能為實(shí)型。是整型、布爾型和字符型等順序類型,不能為實(shí)型。 2 2)遞增按)遞增按succsucc函數(shù)規(guī)律變化,遞減按函數(shù)規(guī)律變化

8、,遞減按predpred函數(shù)規(guī)律變化,整型按數(shù)值大小函數(shù)規(guī)律變化,整型按數(shù)值大小變化,如果為字符型量,按變化,如果為字符型量,按ASCIIASCII碼表的順序計(jì)算。碼表的順序計(jì)算。 3 3)初值和終值在循環(huán)之前計(jì)算,重復(fù)過程中,其值不受影響;不得在循環(huán)語)初值和終值在循環(huán)之前計(jì)算,重復(fù)過程中,其值不受影響;不得在循環(huán)語句中對(duì)控制變量進(jìn)行賦值。句中對(duì)控制變量進(jìn)行賦值。 4 4)當(dāng)初值超過終值,不執(zhí)行循環(huán),循環(huán)次數(shù)為零。)當(dāng)初值超過終值,不執(zhí)行循環(huán),循環(huán)次數(shù)為零。 【例1】:計(jì)算1+2+3+4+100之和。 算法分析: 對(duì)于求和,我們使用的是累加的辦法。 程序代碼: program ex1(inp

9、ut,output); var i,sum:integer; begin sum:=0; for i:=1 to 100 do sum:=sum+I; writeln(sum=,sum) end. 補(bǔ)充說明:類似sum迭加變量這樣的功能稱為“累累加器加器”;類似i這樣的變量稱為“計(jì)數(shù)器”;“計(jì)數(shù)器”和“累加器”是在程序中經(jīng)常使用的基本操作語句。 【例3】:鍵入一個(gè)自然數(shù),輸出其所有約數(shù),計(jì)算出這些約數(shù)之和并輸出。算法分析:解決這一問題的關(guān)鍵是找出約數(shù),也就是判定一數(shù)能否被另一數(shù)整除。可以用x mod y=0,來找出所有約數(shù)。程序代碼:program ex3(input,output);prog

10、ram ex3(input,output); var var i,x,y,sum:integer; i,x,y,sum:integer; begin begin write(x=);read(x); write(x=);read(x); sum:=0;i:=0; sum:=0;i:=0; for y:=1 to x dofor y:=1 to x do if x mod y=0 if x mod y=0 then begin then begin write(y:8); write(y:8); i:=i+1; i:=i+1; if i mod 5=0 then writeln; if i mo

11、d 5=0 then writeln; sum:=sum+y sum:=sum+y end; end; writeln(sum=,sum) writeln(sum=,sum) end. end.If語句For語句If語句作為For語句的循環(huán)體【例4】:編程找出四位整數(shù)abcd中滿足下述關(guān)系的數(shù)。 (ab+cd)(ab+cd)=abcd算法分析:這道題屬于搜索問題,因?yàn)槭撬奈徽麛?shù),其范圍從10009999,所求的數(shù)究竟在哪里,無法確定,只有在這個(gè)范圍內(nèi)從小到大一個(gè)一個(gè)進(jìn)行搜索,對(duì)每一個(gè)數(shù),看它的高兩位數(shù)與低兩位數(shù)和的平方是否為該數(shù)。高兩位數(shù):abcd div 100=ab低兩位數(shù):abcd mo

12、d 100=cd程序代碼:program ex4(input,output);program ex4(input,output); var var i,m,n,k:integer; i,m,n,k:integer; begin begin for i:=1000 to 9999 do for i:=1000 to 9999 do begin begin m:=i div 100; m:=i div 100; n:=i mod 100; n:=i mod 100; k:=(m+n) k:=(m+n)* *(m+n);(m+n); If k=i then write(I:8) If k=i the

13、n write(I:8) end end end. end.補(bǔ)充說明:以上用的方法也叫以上用的方法也叫“枚舉法枚舉法”,又稱,又稱“窮舉法窮舉法”。它是用計(jì)算機(jī)解題的一種常用的。它是用計(jì)算機(jī)解題的一種常用的辦法。它的基本思路是:一一枚舉各種可能的情況,并判斷哪一種可能是符合要求辦法。它的基本思路是:一一枚舉各種可能的情況,并判斷哪一種可能是符合要求的解。方法雖然很笨,然而與計(jì)算機(jī)高速的處理能力相結(jié)合,也不失為一種較有用的解。方法雖然很笨,然而與計(jì)算機(jī)高速的處理能力相結(jié)合,也不失為一種較有用的方法的方法 2while語句:語句: 對(duì)于對(duì)于for循環(huán)有時(shí)也稱為計(jì)數(shù)循環(huán)。循環(huán)有時(shí)也稱為計(jì)數(shù)循環(huán)。適合

14、用于事先知道循環(huán)次適合用于事先知道循環(huán)次數(shù)數(shù). 當(dāng)循環(huán)次數(shù)未知,只能根據(jù)某一條件來決定是否進(jìn)行循環(huán)時(shí),用當(dāng)循環(huán)次數(shù)未知,只能根據(jù)某一條件來決定是否進(jìn)行循環(huán)時(shí),用while 語句實(shí)現(xiàn)循環(huán)要更方便。語句實(shí)現(xiàn)循環(huán)要更方便。(“當(dāng)型循環(huán)當(dāng)型循環(huán)”):當(dāng)條件滿足時(shí)反復(fù)執(zhí)行循環(huán)體。):當(dāng)條件滿足時(shí)反復(fù)執(zhí)行循環(huán)體。格式:格式:while 布爾表達(dá)式布爾表達(dá)式 do 語句;語句;執(zhí)行過程:執(zhí)行過程: while語句的執(zhí)行過程為:語句的執(zhí)行過程為: 判斷布爾表達(dá)式的值判斷布爾表達(dá)式的值,如果其值為真如果其值為真,執(zhí)行步驟執(zhí)行步驟2,否則執(zhí)行步驟否則執(zhí)行步驟4; 執(zhí)行循環(huán)體語句執(zhí)行循環(huán)體語句(do后面的語句后面的

15、語句); 返回步驟返回步驟1; 結(jié)束循環(huán)結(jié)束循環(huán),執(zhí)行執(zhí)行while的下一個(gè)語句。的下一個(gè)語句。說明:說明: 1)為了是)為了是while循環(huán)能正常終止,布爾表達(dá)式中的變量必須在循環(huán)體中的某循環(huán)能正常終止,布爾表達(dá)式中的變量必須在循環(huán)體中的某語句中有所改變,即有可能是布爾表達(dá)式的值為假,使循環(huán)結(jié)束,否則將語句中有所改變,即有可能是布爾表達(dá)式的值為假,使循環(huán)結(jié)束,否則將出現(xiàn)死循環(huán)。出現(xiàn)死循環(huán)。 2)循環(huán)體中的語句一般是多條語句,用)循環(huán)體中的語句一般是多條語句,用begin和和end使其成為一條復(fù)合語句。使其成為一條復(fù)合語句。【例5】:輸出1100之間的奇數(shù)。程序代碼:program ex5(i

16、nput,output);var x:integer;begin x:=1; while x100 do begin write(x:5); x:=x+2 endend.【例6】:輸入若干個(gè)字符,它的終止符是#,計(jì)算輸入的字符中a(A)出現(xiàn)的次數(shù)。算法分析:設(shè)計(jì)數(shù)器i,置初值為0;出入字符;當(dāng)字符不為#時(shí)循環(huán):如果字符為a或A,則計(jì)數(shù)器加1;讀入下一個(gè)字符;輸出計(jì)數(shù)器的值,程序結(jié)束。程序代碼:program ex6(input,output);program ex6(input,output); var var ch:char; ch:char; i:integer; i:integer;be

17、ginbegin i:=0; i:=0; read(ch); read(ch); while ch# dowhile ch# do begin begin if (ch=a) or (ch=A) if (ch=a) or (ch=A) then i:=i+1; then i:=i+1; read(ch) read(ch) end; end; writeln(i=,i) writeln(i=,i)end.end. repeat語句:(“直到型循環(huán)”):反復(fù)執(zhí)行循環(huán)體直到條件滿足為止。格式:repeat 語句1; 語句2; 語句3; 語句n until 布爾表達(dá)式;功能:執(zhí)行過程:先執(zhí)行指定的語句

18、序列,然后判別表達(dá)式。3 repeat語句:(“直到型循環(huán)”)說明:while語句和repeat語句都可以實(shí)現(xiàn)循環(huán)結(jié)構(gòu),但它們有四點(diǎn)不同: 【例7】:將例題6的程序用repeat語句改寫。 program ex7(input,output); var ch:char; i:integer; begin i:=0; repeat read(ch); if (ch=a) or (ch=A) then i:=i+1; until ch=#; writeln(i=,i) end.【例【例8】:從從n個(gè)數(shù)中挑出最大的數(shù)。個(gè)數(shù)中挑出最大的數(shù)。算法分析:算法分析:讀入讀入n值;值;讀入第讀入第1個(gè)數(shù),賦值給變量個(gè)數(shù),賦值給變量max;依次讀入后依次讀入后n-

溫馨提示

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

評(píng)論

0/150

提交評(píng)論