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

下載本文檔

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

文檔簡介

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)該語句為一個語句;)該語句為一個語句; 2 2)條件是一個布爾表達式或一個布爾變量,)條件是一個布爾表達式或一個布爾變量,then then 和和elseelse后的后的語句可以是單個語句,當需要多條語句時,用語句可以是單個語句,當需要多條語句時,用beginbegin和和endend括起括起來構(gòu)成復合語句。來構(gòu)成復合語句。 3 3)當布爾表達式的值為真,則執(zhí)行當布爾表達式的值為真,則執(zhí)行thenthen后面的語句,值為假時有兩種后面的語句,值為假時有兩種情況:要么什么也不做,要么執(zhí)行情

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

4、的類型通常是整型、字符型 3)常量表是常量,其類型與表達式的類型要一致。常量表中的常量不能重復?!纠纠?】:輸入兩個數(shù)(均不為零)及一個算術(shù)運算符,輸輸入兩個數(shù)(均不為零)及一個算術(shù)運算符,輸出其運算的結(jié)果出其運算的結(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(

5、x,ch,y,=,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)語句來實現(xiàn)。它們分別為循環(huán)結(jié)構(gòu)程序通常由三種的循環(huán)語句來實現(xiàn)。它們分別為 FOR循環(huán)、當循環(huán)循環(huán)、當循環(huán)while、直到、直到repeat循環(huán)。循環(huán)。 通常將一組重復執(zhí)行的語句稱為循環(huán)體,而控制重復執(zhí)行或終止通常將一組重復執(zhí)行的語句稱為循環(huán)體,而控制重復執(zhí)行或終止執(zhí)行由重復終止條件決定。執(zhí)行由重復終止條件決定。 因此,重復語句是由因此,重復語句是由循環(huán)體循環(huán)體及及重復終止條件重復終止條件兩部分組成。兩部分組成。1for語句1 1forfor語句:(語句:(“計數(shù)循環(huán)計

6、數(shù)循環(huán)”):就是將規(guī)定循環(huán)體重復執(zhí)行的次數(shù)。):就是將規(guī)定循環(huán)體重復執(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)控制變量的值是否已“超過超過”終值,如已超過,則跳到步驟終值,如已超過,則跳到步驟; 如果末超過終值,則

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

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

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

10、ut);program 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;

11、 if i mod 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算法分析:這道題屬于搜索問題,因為是四位整數(shù),其范圍從10009999,所求的數(shù)究竟在哪里,無法確定,只有在這個范圍內(nèi)從小到大一個一個進行搜索,對每一個數(shù),看它的高兩位數(shù)與低兩位數(shù)和的平方是否為該數(shù)。高兩位數(shù):abcd div 100=ab低兩位數(shù)

12、:abcd mod 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

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

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

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

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

17、teger;beginbegin 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)”):反復執(zhí)行循環(huán)體直到條件滿足為止。格式:repeat 語句1; 語句2; 語句3; 語句n until 布爾表達式;功能:執(zhí)行過程:

18、先執(zhí)行指定的語句序列,然后判別表達式。3 repeat語句:(“直到型循環(huán)”)說明:while語句和repeat語句都可以實現(xiàn)循環(huán)結(jié)構(gòu),但它們有四點不同: 【例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個數(shù)中挑出最大的數(shù)。個數(shù)中挑出最大的數(shù)。算法分析:算法分析:讀入讀入n值;值;讀入第讀入第1個數(shù),賦值給變量個數(shù),賦值給變量max;依次讀入后依次讀入后n

溫馨提示

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

評論

0/150

提交評論