信息學(xué)for循環(huán)語句_第1頁
信息學(xué)for循環(huán)語句_第2頁
信息學(xué)for循環(huán)語句_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(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)語句在編程中經(jīng)常遇到需要多次有規(guī)律的重復(fù)處理,這就是循環(huán)問題。Free Pascal 采用不同的循環(huán)方式來實(shí)現(xiàn),常用的循環(huán)有三種: for、while、 repeat。第一節(jié)一、for 循環(huán)for 循環(huán)是一種自動(dòng)計(jì)數(shù)型循環(huán)。例 3.1 試打印出 120 的自然數(shù)。解: 用a 代表 120 各數(shù),同時(shí)也用a 兼作計(jì)數(shù),以控制循環(huán)次數(shù); 讓a 從 1 開始; 輸出a; a 自動(dòng)計(jì)數(shù)(加 1),如果未所規(guī)定的循環(huán)范圍則重復(fù)步驟,否則結(jié)束循環(huán)。Pascal 程序: Program Exam12;Var a:Begineger;for a:=1 to 20 do ReadlnEnd.Wrin

2、(a);程序中 for a:=1 to 20 do Wrin (a); 是for 循環(huán)語句。for 循環(huán)語句有兩種格式:for循環(huán)變量:=初值 To 終值 do 語句;for循環(huán)變量:=初值 downto 終值 do 語句;第(1)種格式的初值小于等于終值,循環(huán)變量值按自動(dòng)加 1 遞增變化;第(2)種格式的初值大于或等于終值,循環(huán)變量值按自動(dòng)減 1 遞減變化。for 循環(huán)是 (以遞增 1 或以遞減 1) 計(jì)數(shù)型循環(huán)。比如: 若將例 3.1程序改為倒計(jì)數(shù)(遞減)循環(huán),則輸出 201 的自然數(shù)數(shù): Program Exam31;Var a:Begineger;for a:=20 downto 1

3、do ReadlnEnd.Wrin(a) ;例 3.2打印出 30 至 60 的偶數(shù)。解:方法一:設(shè) a 表示 30 至 60 的所有的數(shù),可用 for 循環(huán)列出;用式子 a mod 2=0篩選出其中的偶數(shù)并輸出。Pascal 程序:Program ex32;Var a :Begineger;For a := 30 to 60 doIfa mod 2=0then wrin(a); Readln;End.在這個(gè)程序中,for 循環(huán)后的循環(huán)語句是一個(gè)條件分支語句。方法二:知道,在式子 a=2*n 中,若 n 取自然數(shù) 1、2、3、,時(shí),則 a 依次得到偶數(shù) 2、4、6、。因此要想得到 30 至 6

4、0 的偶數(shù),就可以讓上面式子中的 n 取 15 至 30 的自然數(shù)就可以了。所以本題還可以按以下步驟處理:設(shè) n 表示 15 至 30 的所有自然數(shù),可用 for 循環(huán)列出;用式子 a := 2*n求出其中的偶數(shù);將結(jié)果輸出至屏幕。Pascal 程序: Program ex32; BeginFor n := 15 to 30 do Begina := 2*n; Wri n(a);End;Readln;End.例 3.3自然數(shù)求和:編一個(gè)程序,求從 1 至 100 的自然數(shù)的和。(leijia1.pas)解: 令S0;令 a 表示 1 至 100 的自然數(shù),用循環(huán)列出;將這些自然數(shù)用公式 S:=

5、S+a 逐一累加到 S 中去;循環(huán)結(jié)束后,S 即為 1 至 100 的自然數(shù)的和,輸出即可。Pascal 程序:Program ex33; var s,a :eger; BeginS := 0;For a := 1 to 100 do S := S+a;Wrin(S=,S);Readln;End.例 3.4一個(gè)兩位數(shù) x,將它的個(gè)位數(shù)字與十位數(shù)字對(duì)調(diào)后得到一個(gè)新數(shù) y,此時(shí) y 恰好比 x 大 36,請(qǐng)編程求出所有這樣的兩位數(shù)。解: 用for 循環(huán)列舉出所有的兩位數(shù),x 為循環(huán)變量; 用公式a:= x div 10 分離出 x 的十位數(shù)字; 用公式 b:= x mod 10 分離出 x 的個(gè)位

6、數(shù)字; 用公式 y:= b*10+a新數(shù) y; 用式子 y-x=36 篩選出符合條件的數(shù) x 并輸出。Pascal 程序:Program ex34;Var a,b,x,y:eger; BeginFor x := 10 to 99 do Begina := x div 10; b := x mod 10; y := b*10+a;if y-x=36 then wrin(x); End;Readln;End.:1526374859例 3.5 把整數(shù) 3025 從中剪開分為 30 和 25 兩個(gè)數(shù),此時(shí)再將這兩數(shù)之和平方,(30+25)2=3025 計(jì)算結(jié)果又等于原數(shù)。求所有符合這樣條件的四位數(shù)。(

7、meiju2.pas)解: Pascal 程序一:ProgramExam35;Var n,n1,n2, x:Begineger;for n:=1000 to 9999 do beginn1:= n div 100;n2:= n mod 100; x:=n1+n2;ifx*x=nthen end;ReadlnEnd.拆取四位數(shù)的前兩位數(shù)拆取四位數(shù)的后兩位數(shù)wrin (n);:202530259801方法二:設(shè)符合條件的四位數(shù)為 N,它應(yīng)當(dāng)是一個(gè)完全平方數(shù),用(a*a)表示。 為了確保 N=(a*a)在四位數(shù)(10009999)范圍內(nèi),可確定a 在 3299 循環(huán); 計(jì)算N=a*a;將四位數(shù) N

8、拆分為兩個(gè)數(shù) n1 和 n2; 若滿足條件(n1+n2)*(n1+n2)N 就輸出 N 。Pascal 程序二:: Program Exam35;Varn,a, x,n1,n2:Begineger;for a:=32to99 beginn:=a*a;n1:= n div 100;n2:= n mod100; x:=n1+n2;do拆取四位數(shù)的前兩位數(shù)拆取四位數(shù)的后兩位數(shù)if x*x=n then wrin (n); end;ReadlnEnd.二、雙重循環(huán)輸出一行*:*For i:=1 to 50 do write(*);Wrin例 3.6用“*”號(hào)打印出如下的長(zhǎng)方形圖案。(tu1.pas)*

9、解: 上面給出的圖例共有 4 行,可以用一個(gè)循環(huán)控制行的變化; 在每行中又有 50 列,可以面控制行的循環(huán)中再套一個(gè)循環(huán)來控制列的變化。Pascal 程序:Program ex36; BeginFor a := 1 to 4 do BeginFor b := 1 to 50 do write(*);Wrin;End; Readln;外循環(huán)控制行的變化內(nèi)循環(huán)控制列的變化輸出一行的“*”后換行End.程序中的循環(huán)對(duì)于a 的每個(gè)值都包含著一個(gè)b=(150)次的內(nèi)循環(huán)。外循環(huán) for a環(huán) for b 包含在里面,稱為 for 循環(huán)的嵌套。嵌套形式如: for a:=n1 to n2 dofor b:

10、=m1 to m2 do 循環(huán)體語句;例 3.7.編程序打印出下列圖案:(tu2.pas)*解: For a:=1 to 5 do beginFor b:=1 to a dowrite(*); Wrin;End;將內(nèi)循例 3.8 打印出九九乘法表(tu3.pas)解:設(shè) a 為被乘數(shù),范圍為 19;b 為乘數(shù),范圍為 1a;乘式為a*b=(a,b 的乘積),則a=1: a=2: a=3: a=4::a=9b=1a b=1a b=1a b=1a:b=1a1*1=12*1=23*1=34*1=42*2=43*2=64*2=83*3=94*3=124*4=169*1=99*2=189*9=81從上面

11、分解的橫行中看到共有 9 行,這里的“行”數(shù)變化與 a 的變化從 19 相同,可用 a 控制“行”的循環(huán);每“行”里面相乘的次數(shù)與b 的范圍相關(guān),由b 控制每“行”里面的“”循環(huán);內(nèi)循環(huán)被包含在最里層,執(zhí)行完每“行”的循環(huán),就到下一“行”去執(zhí)行新“行”里面的循環(huán),每“行”都擁有形式相同的( b=1a )內(nèi)循環(huán)。即每到一“行”都要執(zhí)行該“行”的內(nèi)循環(huán)。這里所指的“行”可以理解成抽象的行,不一定是實(shí)際上具體對(duì)應(yīng)的行,可以是一個(gè)處理“塊”。Pascal 程序: Program Exam37; Var a,b: byte; Beginfor a:=1 to 9 do beginfor b:=1 to

12、a do外循環(huán) 內(nèi)循環(huán) write(a,* ,b,= ,a*b, :3);wrin end;ReadlnEnd.三、多重循環(huán)根據(jù)這種格式還可以實(shí)現(xiàn)多層循環(huán)嵌套,例如:for a:=n1 to n2 dofor b:=m1 to m2 dofor c:=k1 to k2 do 循環(huán)體語句;分析:for n:=100 to 999 doFor a:= 1 to 9 doFor b:= 0 to 9 doFor c:= 0 to 9 don:= a*100+b*10+c例 3.9 百錢買百雞:今有錢 100 元,要買 100 只雞,公雞 3 元一只,母雞 1 元一只,小雞 1 元 3 只,若公雞、母

13、雞和小雞都至少要買 1 只,請(qǐng)編程求出恰好用完 100 元錢買 100只雞的所有方案。程序一:For x:=1 to 100 do For y:=1 to 100 doFor z:=1 to 100 doIf (x*3+y*1+z/3=100)and(x+y+z=100) then wrin(x:5,y:5,z:5);分析:循環(huán)次數(shù)為 100*100*100=1000000 次程序二:For x:=1 to 33 do For y:=1 to 100 doFor z:=1 to 100 doIf (x*3+y*1+z/3=100)and(x+y+z=100) then wrin(x:5,y:5

14、,z:5);分析:循環(huán)次數(shù)為 33*100*100=330000 次程序三:For x:=1 to 33 do For y:=1 to 100 doBeginz:=100-x-y;If x*3+y*1+z/3=100 then wri End;n(x:5,y:5,z:5);分析:循環(huán)次數(shù)為 33*100=3300 次:91215182124273033363942454851545760636669724567891011121314151617181920212223248480767268646056524844403632282420161284習(xí)題 3.1:打印出 1 至 20 的平方數(shù)表。打印出 100 至 200 之間的奇數(shù)。求出能被 5 整除的所有四位數(shù)的和。(mod3.pas)在下面式子中的二個(gè)內(nèi)填入一個(gè)合適的同樣的數(shù)字,使等式成立。(dengshi4.pas)3*6528=3*8256有一個(gè)三位數(shù),它的各位數(shù)字之和的 11 倍恰好等于它自身,請(qǐng)編程求出這個(gè)三位數(shù)。(number5.pas)在自然數(shù)中,如果一個(gè)三位數(shù)等于自身各位數(shù)字之立方和,則這個(gè)三位數(shù)就稱為是水仙花數(shù)

溫馨提示

  • 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. 人人文庫(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)論