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

下載本文檔

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

文檔簡(jiǎn)介

循環(huán)結(jié)構(gòu)不厭其煩的重復(fù)的執(zhí)行的相同工作。計(jì)算機(jī)的優(yōu)點(diǎn):實(shí)際生活中,很多工作都是具有重復(fù)性的。如計(jì)算整個(gè)初一年級(jí)的考試成績(jī)。同樣的程序段,反復(fù)地執(zhí)行多次,這就是循環(huán)的概念。11.順序結(jié)構(gòu)2.選擇結(jié)構(gòu)3.循環(huán)結(jié)構(gòu)語(yǔ)句1語(yǔ)句2End.布爾表達(dá)式語(yǔ)句1語(yǔ)句2程序設(shè)計(jì)的三種基本結(jié)構(gòu):TrueFalse布爾表達(dá)式語(yǔ)句1后面的語(yǔ)句truefalse2三種循環(huán)語(yǔ)句(1)for語(yǔ)句(2)當(dāng)型循環(huán)while語(yǔ)句(3)直到型循環(huán)repeat語(yǔ)句3for語(yǔ)句for語(yǔ)句的一般格式:for<循環(huán)控制變量>:=<初值>to

<終值>do

語(yǔ)句;for<循環(huán)控制變量>:=<初值>downto<終值>do

語(yǔ)句;1.遞增型循環(huán)2.遞減型循環(huán)(初值<=終值)(初值>=終值)4for語(yǔ)句1.遞增型循環(huán)2.遞減型循環(huán)var

i:integer;beginfori:=1to10dowrite(i:3);end.var

i:integer;beginfori:=10downto1dowrite(i:3);end.5for語(yǔ)句的執(zhí)行過程:1.先將初值賦給“循環(huán)控制變量(也稱循環(huán)變量)”;2.判斷循環(huán)變量的值是否超過終值(對(duì)遞增型來說,“超過”是大于,對(duì)遞減型來說,“超過”是小于),如果超過則跳到步驟6;3.如果未超過終值,則執(zhí)行do后面的語(yǔ)句(循環(huán)體);4.如果不是最后一次循環(huán),那么循環(huán)變量遞增(對(duì)to)1或遞減(對(duì)downto)1;5.返回執(zhí)行步驟26.循環(huán)結(jié)束,執(zhí)行for循環(huán)下面的語(yǔ)句;var

i:integer;beginfori:=1to10dowrite(i:3);end.6i<=10Write(i)下一個(gè)語(yǔ)句i:=i+1i:=1TFfori:=1to10dowrite(i:3);i>=1Write(i)下一個(gè)語(yǔ)句i:=i-1i:=10TFfori:=10downto1dowrite(i:3);1.遞增型循環(huán)2.遞減型循環(huán)7使用for語(yǔ)句的注意事項(xiàng):1.循環(huán)變量一般習(xí)慣使用i,j,k等字母來表示,循環(huán)控制變量必須為順序類型。如整型,字符型等,但不能為實(shí)型和int64類型……);var

i:real;beginfori:=1.5to2.5dowrite(i:3);end.8使用for語(yǔ)句的注意事項(xiàng):2.循環(huán)變量的值遞增或遞減的規(guī)律是:選用to則為遞增,按succ(x)(后繼)函數(shù)規(guī)律變化;

選用downto則為遞減,按pred(x)(前驅(qū))函數(shù)規(guī)律變化;var

i:char;beginfori:=‘a(chǎn)’to‘z’dowrite(i:3);end.整數(shù)則加減1;字符型,則按ASCII碼表的順序計(jì)算

succ(‘a(chǎn)’)=‘b’pred(‘d’)=‘c’9var

i,k:integer;beginfori:=1to10do;

k:=k+1;end.使用for語(yǔ)句的注意事項(xiàng):3.do后面如果有分號(hào),說明循環(huán)體是空var

i,k:integer;beginfori:=1to10dok:=k+1;end.do后面有分號(hào),所以循環(huán)體是空?qǐng)?zhí)行完for語(yǔ)句后,再執(zhí)行1次k:=k+1for語(yǔ)句的循環(huán)體是k:=k+1每次循環(huán)都要執(zhí)行,共執(zhí)行10次10var

i:integer;beginfori:=1to10do

begin

k:=k+1;

writeln(k);

end;end.使用for語(yǔ)句的注意事項(xiàng):4.循環(huán)體可以是一個(gè)語(yǔ)句也可以是一個(gè)多個(gè)語(yǔ)句;如果是多個(gè)語(yǔ)句,則用begin和end括起來,構(gòu)成一個(gè)復(fù)合語(yǔ)句;11使用for語(yǔ)句的注意事項(xiàng):var

i:integer;beginfori:=1to10do

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

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

ans:=ans+i;end;7.終止循環(huán)用break語(yǔ)句;結(jié)束本次循環(huán)直接進(jìn)入下次循環(huán)用continue語(yǔ)句;{循環(huán)計(jì)到i=2就結(jié)束了,后面的3~10不用執(zhí)行}1~10的循環(huán)中,奇數(shù)次i就執(zhí)行ans:=ans+i偶數(shù)次i就跳過,不需執(zhí)行ans:=ans+i

14使用for語(yǔ)句的注意事項(xiàng):s:=0;fori:=1to1dos:=s+1;8.若循環(huán)變量的初值=終值,循環(huán)體執(zhí)行一次;若循環(huán)變量的初值>終值,循環(huán)體不執(zhí)行;{循環(huán)體s:=s+1執(zhí)行1次,s的值為1}s:=0;fori:=1to0dos:=s+1;{循環(huán)體s:=s+1沒有執(zhí)行,s的值為0}15編程練習(xí)1.輸出1~20之間的所有偶數(shù)?!据斎搿繜o(wú)【輸出】輸出1-20之間所有的偶數(shù),輸出的偶數(shù)之間用空格隔開。Var

i:integer;beginfori:=1to20doifimod2=0thenwrite(i,‘‘);end.16編程練習(xí)2.輸出1~30之間的所有偶數(shù)的個(gè)數(shù).【輸入】無(wú)【輸出】輸出1-30之間所有偶數(shù)的個(gè)數(shù)。Var

I,s:integer;beginfori:=1to30doifimod2=0thens:=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.17編程練習(xí)3.輸出1~n之間的所有奇數(shù)的個(gè)數(shù).【輸入】一個(gè)整數(shù)n(n<1000)【輸出】1~n之間的所有奇數(shù)的個(gè)數(shù)?!据斎霕永?【輸出樣例】4Var

I,s,n:integer;Begin

readln(n);fori:=1tondoifimod2<>0thens:=s+1;

writeln(s);end.18累加器4.求1+2+3+…+100的和.

s:=0;{變量s存儲(chǔ)累加和}fori:=1to100do

s:=s+i;write(s);195.求1+2+3+…+n的和。(n<10000)

編程練習(xí)【輸入】一個(gè)整數(shù)n(n<10000)【輸出】輸出1+2+3+...+n的和?!据斎霕永?00【輸出樣例】5050類型標(biāo)識(shí)符名稱數(shù)據(jù)范圍字節(jié)數(shù)格式integer整型-32768~327672帶符號(hào)16位longint長(zhǎng)整型-2147483648~21474836474帶符號(hào)32位int64int64-9223372036854775809~9223372036854775808【分析】因?yàn)閚<10000,當(dāng)n=100時(shí),和為5050,但n=1000,和為500500,但integer的范圍是-32768~32767,所以若定義s存儲(chǔ)累加和,肯定不夠“裝”,故需定義更大的數(shù)據(jù)類型,如longint,甚至更大的int64。206.求12+22+…+n2的和。(n<100)

編程練習(xí)【輸入】一個(gè)整數(shù)n(n<100)【輸出】12+22+…+n2的和。【輸入樣例】3【輸出樣例】14fori:=1tondo

s:=s+i*i;21編程練習(xí)7.輸出1~n之間的所有偶數(shù)的和.【輸入】一個(gè)整數(shù)n(n<200)【輸出】1~n之間的所有偶數(shù)的和?!据斎霕永?【輸出樣例】12fori:=1tondoifimod2=0then

s:=s+i;22編程練習(xí)【輸入】一個(gè)整數(shù)n(n<=1000)【輸出】1+1/2+1/3+…+1/n的和?!据斎霕永?00【輸出樣例】5.198.求1+1/2+1/3+…+1/n的和。(n<=1000)【保留兩位小數(shù)】fori:=1tondo

s:=s+1/i;23編程練習(xí)【輸入】無(wú)【輸出】abc…zZYX..CBA

。9.打印出字母串“abc…xyzZYX..CBA”fork:='a'to'z'do

write(k);fork:=‘Z'

downto

‘A'do

write(k);能否用writeln?24階乘n的階乘:1~n的累乘即n!=1*2*3*…*n規(guī)定:0!=1

1!=1n!=n*(n-1)!∵n!=n*(n-1)*(n-2)*…*3*2*1

(n-1)!∴n!=n*(n-1)!

25累乘器10.求1*2*3*…*n的積.即求n!

s:=1;{變量s存儲(chǔ)累乘的積,必須初始化為1,不能為0,因?yàn)?乘以任何數(shù)都是0}fori:=1tondo

s:=s*i;write(s);

readln(n);26累乘器s:=1;fori:=1tondo

s:=s*i;write(s);

readln(n);10.求1*2*3*…*n的積.即求n!這條語(yǔ)句少了,思考一下,會(huì)出現(xiàn)什么現(xiàn)象?當(dāng)n的值為10時(shí),S的值已經(jīng)是3628800雖然s定義成longint,但當(dāng)輸入12以上的數(shù)時(shí),會(huì)出現(xiàn)錯(cuò)誤的結(jié)果,說明結(jié)果超出了longint能夠儲(chǔ)存范圍。這時(shí)需要定義更大的類型,如int64,或干脆定義成實(shí)型變量用科學(xué)計(jì)數(shù)法來近似表示這個(gè)數(shù),如real、extended。27上例中用到了“遞推”算法。所謂遞推算法是指在一個(gè)數(shù)的序列值中,下一項(xiàng)的值在前一項(xiàng)的值的基礎(chǔ)上推算出來的,即下一項(xiàng)對(duì)前一項(xiàng)有某種依賴關(guān)系。例如,為求5!,應(yīng)先知道4!的值,然后再乘以5;為求6!必先求出5!。也就是說,從1!可以推出2!,從2!可以推出3!,從3!可以推出4!,以此類推。求n!的遞推公式為:

a1=1 (n=1)an=n*an-1 (n>1)a1=1是“初始條件”或“邊界條件”。只要找出遞推關(guān)系,就可以由循環(huán)來處理,一項(xiàng)一項(xiàng)地推算出來以后各項(xiàng)。在程序中用同一個(gè)變量s來存儲(chǔ)每一次推出來的值,由前一個(gè)s推出后一個(gè)s是遞推。28例4.5

已知一對(duì)兔子,每個(gè)月可以生一對(duì)小兔,而小兔經(jīng)過一個(gè)月生長(zhǎng)后也可每月生一對(duì)小兔。即兔子的對(duì)數(shù)是:第一個(gè)月1對(duì),第二個(gè)月2對(duì),第三個(gè)月3對(duì),第四個(gè)月5對(duì),…,假設(shè)兔子的生育期是12個(gè)月,并且不死,問一年后,這對(duì)兔子有多少對(duì)活著的后代?【分析】

根據(jù)題目給出的條件,得到算法:設(shè)當(dāng)前月兔子有x對(duì),它的前一個(gè)月有l(wèi)astx對(duì),前二個(gè)月有prevx對(duì),明顯存在一個(gè)遞推關(guān)系,即x=lastx+prevx。Programex4_5;Vari,lastx,prevx,x:integer;beginprevx:=1;lastx:=2;fori:=3to12dobeginx:=lastx+prevx;prevx:=lastx;lastx:=x;end;writeln(x);end.運(yùn)行結(jié)果:23329簡(jiǎn)單枚舉11.一個(gè)兩位數(shù)x,將它的個(gè)位數(shù)字與十位數(shù)字對(duì)調(diào)后得到一個(gè)新數(shù)y,此時(shí)y剛好比x大36,請(qǐng)編程求出所有這樣的兩位數(shù)?!据斎搿繜o(wú)【輸出】輸出符合條件的兩位數(shù),數(shù)與數(shù)之間換行輸出?!痉治觥竣儆胒or循環(huán)列舉出所有的兩位數(shù),x為循環(huán)變量;②用公式a:=xdiv10分離出x的十位數(shù)字;③用公式b:=xmod10分離出x的個(gè)位數(shù)字;④用公式y(tǒng):=b*10+a合成新數(shù)y;⑤用式子y-x=36篩選出符合條件的數(shù)x并

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論