循環(huán)結(jié)構(gòu)-1.for語句_第1頁
循環(huán)結(jié)構(gòu)-1.for語句_第2頁
循環(huán)結(jié)構(gòu)-1.for語句_第3頁
循環(huán)結(jié)構(gòu)-1.for語句_第4頁
循環(huán)結(jié)構(gòu)-1.for語句_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、循環(huán)結(jié)構(gòu)不厭其煩的不厭其煩的重復(fù)的重復(fù)的執(zhí)行的執(zhí)行的相同相同工作。工作。計(jì)算機(jī)的優(yōu)點(diǎn):計(jì)算機(jī)的優(yōu)點(diǎn):實(shí)際生活中,很多工作都是具有重復(fù)性的。實(shí)際生活中,很多工作都是具有重復(fù)性的。如計(jì)算整個(gè)初一年級(jí)的考試成績(jī)。如計(jì)算整個(gè)初一年級(jí)的考試成績(jī)。同樣的程序段,反復(fù)地執(zhí)行多次,這就是循環(huán)的概念。同樣的程序段,反復(fù)地執(zhí)行多次,這就是循環(huán)的概念。21.順序結(jié)構(gòu)2.選擇結(jié)構(gòu)3.循環(huán)結(jié)構(gòu)語句語句1語句語句2End.布爾表達(dá)式布爾表達(dá)式語句語句1語句語句2程序設(shè)計(jì)的三種基本結(jié)構(gòu):TrueFalse布爾表達(dá)布爾表達(dá)式式語句語句1后面的語句后面的語句truefalse3三種循環(huán)語句三種循環(huán)語句(1 1)forfor語句

2、語句(2 2)當(dāng)型循環(huán))當(dāng)型循環(huán) whilewhile語句語句(3 3)直到型循環(huán))直到型循環(huán) repeat repeat 語句語句4forfor語句語句for語句的一般格式: for := to do 語句;語句; for := downto do 語句;語句; 1.遞增型循環(huán)遞增型循環(huán)2.遞減型循環(huán)遞減型循環(huán)(初值(初值 = 終值)終值)5forfor語句語句1.遞增型循環(huán)遞增型循環(huán)2.遞減型循環(huán)遞減型循環(huán)var i:integer;begin for i:=1 to 10 do write(i:3);end.var i:integer;begin for i:=10 downto 1 d

3、o write(i:3);end.forfor語句的執(zhí)行過程語句的執(zhí)行過程:1.先將先將初值初值賦給賦給“循環(huán)控制變量循環(huán)控制變量(也稱循環(huán)變量也稱循環(huán)變量)”;2.判斷循環(huán)變量的值判斷循環(huán)變量的值是否超過終值是否超過終值(對(duì)遞增型來說,(對(duì)遞增型來說,“超過超過”是大于,對(duì)遞減型來是大于,對(duì)遞減型來說,說,“超過超過”是小于),如果超過則跳到步驟是小于),如果超過則跳到步驟6;3.如果如果未超過終值未超過終值,則執(zhí)行,則執(zhí)行do后面的語句后面的語句(循環(huán)體循環(huán)體););4.如果如果不是最后一次循環(huán)不是最后一次循環(huán),那么循環(huán)變量,那么循環(huán)變量遞增遞增(對(duì)對(duì)to)1或或遞減遞減(對(duì)對(duì)downto

4、)1;5.返回執(zhí)行步驟返回執(zhí)行步驟26.循環(huán)結(jié)束,執(zhí)行循環(huán)結(jié)束,執(zhí)行for循環(huán)下面的語句;循環(huán)下面的語句;var i:integer;begin for i:=1 to 10 do write(i:3);end.i=1Write(i)下一個(gè)語句下一個(gè)語句i:=i-1i:=10TFfor i:=10 downto 1 do write(i:3);1.遞增型循環(huán)遞增型循環(huán)2.遞減型循環(huán)遞減型循環(huán)8使用使用for語句的注意事項(xiàng):語句的注意事項(xiàng):1.循環(huán)變量一般習(xí)慣使用循環(huán)變量一般習(xí)慣使用i,j,k等字母來表示,等字母來表示, 循環(huán)控制變量必須為循環(huán)控制變量必須為順序類型順序類型。 如整型如整型,字符

5、型等,但字符型等,但不能為實(shí)型和不能為實(shí)型和int64類型類型);var i:real;begin for i:=1.5 to 2.5 do write(i:3);end.9使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):2.循環(huán)變量的值遞增或遞減的規(guī)律是:循環(huán)變量的值遞增或遞減的規(guī)律是: 選用選用to則為則為遞增遞增,按,按succ(x)(后繼后繼)函數(shù)規(guī)律變化函數(shù)規(guī)律變化; 選用選用downto則為則為遞減遞減,按,按pred(x)(前驅(qū)前驅(qū))函數(shù)規(guī)律變化;函數(shù)規(guī)律變化;var i:char;begin for i:=a to z do write(i:3);end.整數(shù)則加減整數(shù)則加

6、減1;字符型,則按字符型,則按ASCII碼表的順序計(jì)算碼表的順序計(jì)算 succ(a)=b pred(d)=cvar i,k:integer;begin for i:=1 to 10 do; k:=k+1; end.使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):3. do后面如果有分號(hào),說明循環(huán)體是空后面如果有分號(hào),說明循環(huán)體是空var i,k:integer;begin for i:=1 to 10 do k:=k+1; end.do 后面有分號(hào),所以循環(huán)體是空?qǐng)?zhí)行完for語句后,再執(zhí)行1次k:=k+1for語句的循環(huán)體是k:=k+1每次循環(huán)都要執(zhí)行,共執(zhí)行10次11var i:inte

7、ger;begin for i:=1 to 10 do begin k:=k+1; writeln(k); end;end.使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):4.循環(huán)體可以是一個(gè)語句也可以是一個(gè)多個(gè)語句;循環(huán)體可以是一個(gè)語句也可以是一個(gè)多個(gè)語句; 如果是多個(gè)語句,則用如果是多個(gè)語句,則用begin和和end括起來,構(gòu)成一個(gè)復(fù)括起來,構(gòu)成一個(gè)復(fù)合語句;合語句;使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):var i:integer;begin for i:=1 to 10 do i:=5; end.5. 不得不得在在循環(huán)體循環(huán)體內(nèi)隨意內(nèi)隨意修改循環(huán)變量的值修改循環(huán)變量的值

8、; 循環(huán)變量的初值和終值一經(jīng)確定,循環(huán)次數(shù)就確定了。循循環(huán)變量的初值和終值一經(jīng)確定,循環(huán)次數(shù)就確定了。循環(huán)變量的值有自己的變化規(guī)律,如果隨意在循環(huán)體內(nèi)對(duì)循環(huán)變環(huán)變量的值有自己的變化規(guī)律,如果隨意在循環(huán)體內(nèi)對(duì)循環(huán)變量的值進(jìn)行修改,常常會(huì)使得循環(huán)提前結(jié)束或進(jìn)入死循環(huán),所量的值進(jìn)行修改,常常會(huì)使得循環(huán)提前結(jié)束或進(jìn)入死循環(huán),所以禁止在循環(huán)體重隨意修改循環(huán)變量的值。以禁止在循環(huán)體重隨意修改循環(huán)變量的值。 以上以上for循環(huán)是一個(gè)死循環(huán),循環(huán)是一個(gè)死循環(huán),i永遠(yuǎn)等于永遠(yuǎn)等于5,不可以達(dá)到終止值,不可以達(dá)到終止值10使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):var a,b,i:integer;be

9、gin a:=1; b:=4; for i:=a to b do begin a:=3; b:=5; write(i:3); endend. 執(zhí)行執(zhí)行for語句,初值語句,初值a=1,終值,終值b=4已經(jīng)確定,則循環(huán)次數(shù)也已確定已經(jīng)確定,則循環(huán)次數(shù)也已確定為為4次。雖然在執(zhí)行循環(huán)體時(shí),次。雖然在執(zhí)行循環(huán)體時(shí),a、b又被賦了新值又被賦了新值3、5,但著并不影響循,但著并不影響循環(huán)的次數(shù)。環(huán)的次數(shù)。6.For語句中的初值、終值可以是順序類型的常量、變量和表語句中的初值、終值可以是順序類型的常量、變量和表達(dá)式;達(dá)式;使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):for i:=1 to 10 d

10、o begin if i=2 then break; end;for i:=1 to 10 do begin if i mod 2=0 then continue; ans:=ans+i; end;7.終止循環(huán)用終止循環(huán)用break語句語句; 結(jié)束本次循環(huán)直接進(jìn)入下次循環(huán)用結(jié)束本次循環(huán)直接進(jìn)入下次循環(huán)用continue語句語句; 循環(huán)計(jì)到i=2就結(jié)束了,后面的310不用執(zhí)行 110的循環(huán)中,奇數(shù)次i就執(zhí)行ans:=ans+i偶數(shù)次i就跳過,不需執(zhí)行ans:=ans+i 15使用使用forfor語句的注意事項(xiàng):語句的注意事項(xiàng):s:=0;for i:=1 to 1 do s:=s+1 ;8.若循環(huán)

11、變量的初值若循環(huán)變量的初值=終值,循環(huán)體執(zhí)行一次;終值,循環(huán)體執(zhí)行一次; 若循環(huán)變量的初值若循環(huán)變量的初值終值,循環(huán)體不執(zhí)行;終值,循環(huán)體不執(zhí)行; 循環(huán)體 s:=s+1 執(zhí)行1次,s的值為1 s:=0;for i:=1 to 0 do s:=s+1 ; 循環(huán)體 s:=s+1 沒有執(zhí)行,s的值為0 16編程練習(xí)編程練習(xí)1.輸出120之間的所有偶數(shù)?!据斎搿繜o【輸出】輸出1-20之間所有的偶數(shù),輸出的偶數(shù)之間用空格隔開。Var i:integer;begin for i:=1 to 20 do if i mod 2=0 then write(i, );end.編程練習(xí)編程練習(xí)2.輸出130之間的所

12、有偶數(shù)的個(gè)數(shù).【輸入】無【輸出】輸出1-30之間所有偶數(shù)的個(gè)數(shù)。Var I,s:integer;begin for i:=1 to 30 do if i mod 2=0 then s:=s+1; writeln(s);end.【分析】設(shè)i為循環(huán)控制變量,偶數(shù)個(gè)數(shù)放在s中,利用循環(huán)變量i的值從1變化到30的規(guī)律,逐一尋找偶數(shù)的個(gè)數(shù),找到偶數(shù)就s:=s+1.18編程練習(xí)編程練習(xí)3.輸出1n之間的所有奇數(shù)的個(gè)數(shù).【輸入】一個(gè)整數(shù)n(n1000)【輸出】 1n之間的所有奇數(shù)的個(gè)數(shù)。【輸入樣例】7【輸出樣例】 4Var I,s,n:integer;Begin readln(n); for i:=1 to

13、 n do if i mod 20 then s:=s+1; writeln(s);end.19累加器累加器4.求1+2+3+100的和. s:=0; 變量s存儲(chǔ) 累加和for i:=1 to 100 do s:=s+i;write(s);205.求1+2+3+n的和。(n10000) 編程練習(xí)編程練習(xí)【輸入】一個(gè)整數(shù)n(n10000)【輸出】輸出1+2+3+.+n的和?!据斎霕永?00【輸出樣例】 5050類型標(biāo)識(shí)符類型標(biāo)識(shí)符名稱名稱數(shù)據(jù)范圍數(shù)據(jù)范圍字節(jié)數(shù)字節(jié)數(shù)格式格式integerinteger整型整型-32768-3276832767327672 2帶符號(hào)帶符號(hào)1616位位longin

14、tlongint長(zhǎng)整型長(zhǎng)整型-2147483648-2147483648214748364721474836474 4帶符號(hào)帶符號(hào)3232位位int64int64int64int64-9223372036854775809-922337203685477580992233720368547758089223372036854775808【分析】因?yàn)椤痉治觥恳驗(yàn)閚10000,n10000,當(dāng)當(dāng)n=100n=100時(shí),和為時(shí),和為50505050,但,但n=1000n=1000,和為,和為500500500500,但,但integerinteger的范圍是的范圍是-32768-3276832767

15、32767,所以若定義,所以若定義s s存儲(chǔ)累加和,肯定不夠存儲(chǔ)累加和,肯定不夠“裝裝”,故需定義更大的數(shù)據(jù)類型,如故需定義更大的數(shù)據(jù)類型,如longintlongint,甚至更大的,甚至更大的int64int64。216.求12+22+n2的和。(n100) 編程練習(xí)編程練習(xí)【輸入】一個(gè)整數(shù)n(n100)【輸出】 12+22+n2的和?!据斎霕永?【輸出樣例】 14for i:=1 to n do s:=s+i*i;22編程練習(xí)編程練習(xí)7.輸出1n之間的所有偶數(shù)的和.【輸入】一個(gè)整數(shù)n(n200)【輸出】 1n之間的所有偶數(shù)的和?!据斎霕永?【輸出樣例】12for i:=1 to n d

16、o if i mod 2=0 then s:=s+i;23編程練習(xí)編程練習(xí)【輸入】一個(gè)整數(shù)n(n=1000)【輸出】 1+1/2+1/3+1/n的和?!据斎霕永?00【輸出樣例】5.198.求1+1/2+1/3+1/n的和。(n1)a1=1是“初始條件”或“邊界條件”。只要找出遞推關(guān)系,就可以由循環(huán)來處理,一項(xiàng)一項(xiàng)地推算出來以后各項(xiàng)。在程序中用同一個(gè)變量s來存儲(chǔ)每一次推出來的值,由前一個(gè)s推出后一個(gè)s是遞推。 29例例4.5 已知一對(duì)兔子,每個(gè)月可以生一對(duì)小兔,而小兔經(jīng)過一個(gè)月已知一對(duì)兔子,每個(gè)月可以生一對(duì)小兔,而小兔經(jīng)過一個(gè)月生長(zhǎng)后也可每月生一對(duì)小兔。即兔子的對(duì)數(shù)是:第一個(gè)月生長(zhǎng)后也可每月

17、生一對(duì)小兔。即兔子的對(duì)數(shù)是:第一個(gè)月1對(duì),第對(duì),第二個(gè)月二個(gè)月2對(duì),第三個(gè)月對(duì),第三個(gè)月3對(duì),第四個(gè)月對(duì),第四個(gè)月5對(duì),對(duì),假設(shè)兔子的生育期,假設(shè)兔子的生育期是是12個(gè)月,并且不死,問一年后,這對(duì)兔子有多少對(duì)活著的后代?個(gè)月,并且不死,問一年后,這對(duì)兔子有多少對(duì)活著的后代?【分析【分析】 根據(jù)題目給出的條件,得到算法:設(shè)當(dāng)前月兔子有x對(duì),它的前一個(gè)月有l(wèi)astx對(duì),前二個(gè)月有prevx對(duì),明顯存在一個(gè)遞推關(guān)系,即x=lastx+prevx。Program ex4_5;Var i,lastx,prevx,x : integer;begin prevx : =1; lastx : =2; for

18、i : =3 to 12 do begin x : =lastx+prevx; prevx : =lastx; lastx : =x; end; writeln(x);end.運(yùn)行結(jié)果:23330簡(jiǎn)單枚舉簡(jiǎn)單枚舉11.一個(gè)兩位數(shù)x,將它的個(gè)位數(shù)字與十位數(shù)字對(duì)調(diào)后得到一個(gè)新數(shù)y,此時(shí)y剛好比x大36,請(qǐng)編程求出所有這樣的兩位數(shù)?!据斎搿繜o【輸出】輸出符合條件的兩位數(shù),數(shù)與數(shù)之間換行輸出。【分析【分析】 用用forfor循環(huán)列舉出所有的兩位數(shù),循環(huán)列舉出所有的兩位數(shù),x x為循環(huán)為循環(huán)變量;變量; 用公式用公式a:= x div 10a:= x div 10分離出分離出x x的十位數(shù)字;的十位數(shù)字; 用公式用公式b:= x mod 10b:= x mod 10分離出分離出x x的個(gè)位數(shù)字;的個(gè)位數(shù)字; 用公式用公式y(tǒng):= by:= b* *10+a10+a

溫馨提示

  • 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)論