


版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版三年級(jí)語文下冊(cè)第三單元達(dá)標(biāo)測(cè)試卷(含答案)
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職法學(xué)題庫(kù)檢測(cè)試卷A卷附答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)題庫(kù)練習(xí)試卷B卷附答案
- 2019-2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)與服務(wù)通關(guān)提分題庫(kù)及完整答案
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職教育學(xué)題庫(kù)檢測(cè)試卷A卷附答案
- 初二壓強(qiáng)物理試題及答案
- 螺螄粉專業(yè)知識(shí)培訓(xùn)課件
- 2025年大學(xué)生防詐騙知識(shí)競(jìng)賽題庫(kù)及答案(一)
- 從愚公移山看堅(jiān)持與毅力作文
- 《初識(shí)高中物理實(shí)驗(yàn):運(yùn)動(dòng)與力的教學(xué)計(jì)劃》
- 醫(yī)院軟式內(nèi)鏡清洗消毒技術(shù)規(guī)范
- 2024年中央空調(diào)市場(chǎng)占有率分析:中央空調(diào)國(guó)產(chǎn)品牌市場(chǎng)占有率上升至52.57%
- 2024年電力交易員(中級(jí)工)職業(yè)鑒定理論考試題庫(kù)-下(多選、判斷題)
- 輪胎英語詞匯
- 按摩技師簽訂勞動(dòng)合同注意事項(xiàng)
- TD/T 1054-2018 土地整治術(shù)語(正式版)
- JT-GQB-015-1998公路橋涵標(biāo)準(zhǔn)鋼筋混凝土圓管涵洞
- 騰訊招聘測(cè)評(píng)題庫(kù)答案大全
- 旅游提成協(xié)議書
- 第六章《平面向量及其應(yīng)用》同步單元必刷卷(基礎(chǔ)卷)(考試版)
- 校園欺凌談話記錄表
評(píng)論
0/150
提交評(píng)論