循環(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ù)免費閱讀

下載本文檔

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

文檔簡介

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

<終值>do

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

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

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

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

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

i:real;beginfori:=1.5to2.5dowrite(i:3);end.8使用for語句的注意事項: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碼表的順序計算

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

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

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

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

i:integer;beginfori:=1to10do

begin

k:=k+1;

writeln(k);

end;end.使用for語句的注意事項:4.循環(huán)體可以是一個語句也可以是一個多個語句;如果是多個語句,則用begin和end括起來,構(gòu)成一個復(fù)合語句;11使用for語句的注意事項: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)對循環(huán)變量的值進行修改,常常會使得循環(huán)提前結(jié)束或進入死循環(huán),所以禁止在循環(huán)體重隨意修改循環(huán)變量的值。以上for循環(huán)是一個死循環(huán),i永遠等于5,不可以達到終止值1012使用for語句的注意事項:var

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

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

14使用for語句的注意事項: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【輸出】輸出1-20之間所有的偶數(shù),輸出的偶數(shù)之間用空格隔開。Var

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

I,s:integer;beginfori:=1to30doifimod2=0thens:=s+1;

writeln(s);end.【分析】設(shè)i為循環(huán)控制變量,偶數(shù)個數(shù)放在s中,利用循環(huán)變量i的值從1變化到30的規(guī)律,逐一尋找偶數(shù)的個數(shù),找到偶數(shù)就s:=s+1.17編程練習(xí)3.輸出1~n之間的所有奇數(shù)的個數(shù).【輸入】一個整數(shù)n(n<1000)【輸出】1~n之間的所有奇數(shù)的個數(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存儲累加和}fori:=1to100do

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

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

編程練習(xí)【輸入】一個整數(shù)n(n<100)【輸出】12+22+…+n2的和?!据斎霕永?【輸出樣例】14fori:=1tondo

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

s:=s+i;22編程練習(xí)【輸入】一個整數(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í)【輸入】無【輸出】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存儲累乘的積,必須初始化為1,不能為0,因為0乘以任何數(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!這條語句少了,思考一下,會出現(xiàn)什么現(xiàn)象?當n的值為10時,S的值已經(jīng)是3628800雖然s定義成longint,但當輸入12以上的數(shù)時,會出現(xiàn)錯誤的結(jié)果,說明結(jié)果超出了longint能夠儲存范圍。這時需要定義更大的類型,如int64,或干脆定義成實型變量用科學(xué)計數(shù)法來近似表示這個數(shù),如real、extended。27上例中用到了“遞推”算法。所謂遞推算法是指在一個數(shù)的序列值中,下一項的值在前一項的值的基礎(chǔ)上推算出來的,即下一項對前一項有某種依賴關(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)來處理,一項一項地推算出來以后各項。在程序中用同一個變量s來存儲每一次推出來的值,由前一個s推出后一個s是遞推。28例4.5

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

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

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論