




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四章 過程化語句2本章主要內(nèi)容4.1 while 語句4.2 dowhile語句4.3 for 語句4.4 switch 語句4.5 轉(zhuǎn)向語句4.6 過程應(yīng)用:求 4.7 過程應(yīng)用:判明素?cái)?shù)作業(yè)3熟練使用while循環(huán)語句熟練使用dowhile 循環(huán)語句熟練使用for循環(huán)語句熟練使用switch多重選擇語句熟練使用break和continue語句學(xué)習(xí)目標(biāo):44.1 while 語句一般形式: while(表達(dá)式) 語句 說明:先判斷再執(zhí)行;while后面的括號和括號中的表達(dá)式都必須有。表達(dá)式可以是常量或常量表達(dá)式。 例: while(5) /跳出循環(huán) 可以是復(fù)合語句,其中必須含有改變條件表達(dá)
2、式值的語句。54.1 while 語句例:求1加到100的和/ ch4_1.cpp#include int main() int i=1,sum=0; while(i101) sum=sum+i; +i; coutsum= sumendl; 64.2 dowhile 語句一般形式:do 語句while (表達(dá)式);可以是復(fù)合語句,其中必須含有改變條件表達(dá)式值的語句執(zhí)行順序先執(zhí)行循環(huán)體語句,后判斷條件。表達(dá)式為 true 時(shí),繼續(xù)執(zhí)行循環(huán)體注意:該語句后面的分號必須要有!與while 語句的比較:while 語句執(zhí)行順序:先判斷表達(dá)式的值,為true 時(shí),再執(zhí)行語句do while:先執(zhí)行再判斷
3、語句,至少執(zhí)行一次循環(huán)體74.2 dowhile 語句/* ch4_2.cpp *從鍵盤得到一個(gè)范圍為110的數(shù)#include int main() int val; do /循環(huán)體 cout val; /修改條件 if (val10) cout the number is not between 1 and 10n; while( val10 ); /繼續(xù)條件 cout you entered a val endl;84.2 dowhile 語句例:求1加到100的和/ch4_3.cpp#include int main() int i=1,sum=0; do sum=sum+i; +i;
4、 while(i101); coutsum= sumendl; 程序1:#includeint main( ) int i, sum=0; cini; while(i=10) sum+=i; i+; coutsum=sumendl;程序2:#includeint main( ) int i, sum=0; cini; do sum+=i; i+; while(i=10); coutsum=sumendl;對比下列程序:例如,輸入一個(gè)整數(shù),將各位數(shù)字反轉(zhuǎn)后輸出。#include int main( ) int n, right_digit; cout n;cout The number in r
5、everse order is: ;do right_digit = n % 10;cout right_digit;n /= 10; while (n != 0); coutendl;運(yùn)行結(jié)果:Enter the number: 365The number in reverse order is: 563114.3 for 語句一般形式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 可理解為:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句循環(huán)前先求解每次執(zhí)行完循環(huán)體后求解非0時(shí)執(zhí)行循環(huán)體循環(huán)變量賦初值循環(huán)條件?語句循環(huán)變量增值for語句的下一語句for (循環(huán)變量賦初值;循環(huán)條件;循
6、環(huán)變量增值) 語句真假134.3 for 語句例:求1加到100的和#include int main() int i=1,sum=0; for(;i101;+i) sum=sum+i; coutsum= sumendl; 144.3 for 語句 for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 表達(dá)式1可以省略。此時(shí)應(yīng)在for語句之前給循環(huán)變量賦初值。若省略表達(dá)式1,其后的分號不能省略。例如,求和運(yùn)算: i=1; for ( ; i 100) break; 等價(jià)于: for (i=1;1 ;i+) sum+=i; if (i100) break; / break表示退出循環(huán) 164.3 for
7、 語句表達(dá)式3可以省略。但此時(shí)應(yīng)在循環(huán)體中讓循環(huán)變量遞進(jìn)變化,以保證循環(huán)能正常結(jié)束。 例如,求和運(yùn)算: for (i=1;i101; ) /分號不能省略 sum+=i; i+; 表達(dá)式1和表達(dá)式3都可以省略。例如,求和運(yùn)算: i=1; for ( ; i 100) break; 表達(dá)式1,表達(dá)式2,表達(dá)式3都可以為任何表達(dá)式 for(i=1,sum=0;i101;+i) /表達(dá)式1是逗號表達(dá)式 sum+=i; for(i=1,sum=0;i101; sum+=i+); /語句是空語句表達(dá)式1可以是循環(huán)變量定義。 for(int i=1;i101;+i) sum+=i;例如,輸入一個(gè)整數(shù),求出它
8、的所有因子。運(yùn)行結(jié)果1:Enter a positive integer: 36Number 36 Factors 1 2 3 4 6 9 12 18 36 運(yùn)行結(jié)果2:Enter a positive integer: 7Number 7 Factors 1 7 #include int main( ) int n, k;cout n;cout Number n Factors ;for (k=1; k = n; k+)if (n % k = 0)cout k ; cout endl;20一般形式switch (表達(dá)式) case 常量表達(dá)式 1:語句1 case 常量表達(dá)式 2:語句2 c
9、ase 常量表達(dá)式 n:語句n default : 語句n+1 4.4 switch語句(多分支選擇語句)執(zhí)行順序以case中的常量表達(dá)式值為入口標(biāo)號,由此開始順序執(zhí)行。因此,每個(gè)case分支最后應(yīng)該加break語句。每個(gè)常量表達(dá)式的值不能相同,次序不影響執(zhí)行結(jié)果??梢允嵌鄠€(gè)語句,但不必用 ??梢允钦汀⒆址?、枚舉型214.4 switch語句(多分支選擇語句)利用break語句可以跳出switch語句多個(gè)case可以共用一組執(zhí)行程序段, 例: case 1: case 7: case 9: a=a+b; couta=a; break; case a+p: case 100: max(a,b
10、); break; 即:符合1、7、9的情況,均執(zhí)行同一段語句;符合a+p和100,均執(zhí)行同一段語句例如,輸入一個(gè)06的整數(shù),轉(zhuǎn)換成星期輸出。#include int main(void) int day;cin day;switch (day) case 0:cout Sunday endl;break; case 1:cout Monday endl;break; case 2:cout Tuesday endl;break; case 3: cout Wednesday endl;break; case 4:cout Thursday endl;break; case 5:cout Fr
11、iday endl;break; case 6:cout Saturday endl;break; default: cout Day out of range Sunday . Saturday endl;break; /最后一個(gè)分支的 break語句可以省略 244.5 轉(zhuǎn)向語句break 語句作用: 中止switch語句的執(zhí)行,并跳出switch語句 從最近的封閉循環(huán)體中跳出,轉(zhuǎn)而執(zhí)行循環(huán)體的下一條語句注意:只能用于switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中! 254.5 轉(zhuǎn)向語句例如: for( ; ; ) for ( ; ; ) / if(i = 1) break; / a=1; /break調(diào)至
12、此處 / 264.5 轉(zhuǎn)向語句continue 語句作用:用在循環(huán)結(jié)構(gòu)中,用于結(jié)束本次循環(huán)注意:并不從循環(huán)體中跳出,除非已處于循環(huán)結(jié)束點(diǎn) 例: for (j=0; j100; +j) a=a+j*j; if(j=50) coutinue; / 如果j等于50就不執(zhí)行 /下面的語句,直接進(jìn)行下一輪循環(huán) couta=a; continue與break的區(qū)別:284.5 轉(zhuǎn)向語句goto 語句一般形式: goto 語句標(biāo)號;goto為無條件轉(zhuǎn)向語句,與if語句 一起使用可構(gòu)成循環(huán) 例:求1加到100的和 #include int main() int i=1,sum=0; loop:sum=sum+
13、i; +i; if(i101) goto loop; coutsum= sum; 應(yīng)該禁用goto語句(不符合結(jié)構(gòu)化原則)29打印數(shù)字金字塔 0 40 79 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 . . . . . . 1 2 3 8 9 8 3 2 1 循環(huán)結(jié)構(gòu)的嵌套#include#includeint main()int i,j;for(i=1;i=9;i+)coutsetw(40-3*(i-1)1;for(j=2;j=i;j+)coutsetw(3)=1;j-)coutsetw(3)j;coutendl; /end of for /end of main31循
14、環(huán)結(jié)構(gòu)的嵌套在屏幕上顯示如下圖案:* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *32循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)相互嵌套例如:讀入一系列整數(shù),統(tǒng)計(jì)出正整數(shù)個(gè)數(shù)i和負(fù)整數(shù)個(gè)數(shù)j,讀入0則結(jié)束。分析: 需要讀入一系列整數(shù),但是整數(shù)個(gè)數(shù)不定,要在每次讀入之后進(jìn)行判斷,因此使用while循環(huán)最為合適。循環(huán)控制條件應(yīng)該是n != 0。由于要判斷數(shù)的正負(fù)并分別進(jìn)行統(tǒng)計(jì),所以需要在循環(huán)內(nèi)部
15、嵌入選擇結(jié)構(gòu)。#includeint main() int i=0, j=0, n; coutn; while( n!=0 ) if(n0) i+=1; if(nn; cout 正整數(shù)個(gè)數(shù): i 負(fù)整數(shù)個(gè)數(shù): jendl;344.6 過程應(yīng)用:求 程序設(shè)計(jì)方法有三個(gè)層次:(1)簡單的問題求解分析方法(過程化方法)。它適用于簡單、孤立的問題求解。一般定義23個(gè)函數(shù)便可解決。(2)結(jié)構(gòu)化程序設(shè)計(jì)方法。它適用于一個(gè)問題大小適中,能夠方便地分解成相對獨(dú)立的幾個(gè)功能模塊,從而用幾個(gè)程序文件分別描述并調(diào)試實(shí)現(xiàn)之。(3)面向?qū)ο蟪绦蛟O(shè)計(jì)方法。它面向求解一個(gè)用常規(guī)方法并不能簡單理清頭緒的問題。它將問題看作為包
16、含有若干個(gè)小對象的大對象,層層分解對象,研究里面的數(shù)據(jù)和行為。當(dāng)一個(gè)問題分解成不同層次的對象結(jié)構(gòu)時(shí),程序設(shè)計(jì)的描述也同時(shí)完成。這里介紹的是第一種方法。例如,用公式“/4=1-1/3+1/5-1/+”求的近似值,直到最后一項(xiàng)的絕對值小于108為止。分析:(1)的表示用double型。(2)先求/4,然后求。(3)分析數(shù)列的通項(xiàng):數(shù)列的第1項(xiàng)是1,第2項(xiàng)是-1/3,第n項(xiàng)是(-1)n-1/(2*n-1)。第n項(xiàng)與第n-1項(xiàng)的關(guān)系為符號變一下,分母加2。/* ch4_4.cpp *#include #include #include int main( ) double s=0,x=1; /初始值
17、long k=1; int sign=1; while(fabs(x)1e-8) /項(xiàng)值在比較前要先求絕對值 s += x; k += 2; sign *= -1; x = sign/double(k); /強(qiáng)制轉(zhuǎn)換使x得到浮點(diǎn)數(shù)值 s *= 4; /值 cout the pi is /輸出 setiosflags(ios:fixed) setprecision(8) s endl;運(yùn)行結(jié)果為: the pi is 3.14159263/*/* ch4_5.cpp */*#include #include int main() double s=0,x=1; /初始值 for(int n=1;
18、 fabs(x)1e-8; n+,x*=(-1.0)*(2*n-3)/(2*n-1) s += x; s*=4; /值 cout the pi is s endl; /輸出運(yùn)行結(jié)果為: the pi is 3.14159384.7 過程應(yīng)用:判明素?cái)?shù)例:給定一個(gè)整數(shù)m,判斷其是否為素?cái)?shù)。分析:m是素?cái)?shù)的條件是不能被2,3,m-1整除。/* ch4_6.cpp *#include int main() /輸入 long m; cout m;394.7 過程應(yīng)用:判明素?cái)?shù) /處理 for(int i=2; im; i+) /找m的因數(shù) if(m%i=0) break; /輸出 if(m=i) /判斷m是否被小于m的數(shù)整除 cout m is prime.n; else cout m isnt prime.n;404.7 過程應(yīng)用:判明素?cái)?shù) 改進(jìn): 如果m不是素?cái)?shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司入股和合伙協(xié)議書
- cbd加工項(xiàng)目協(xié)議書
- 事務(wù)所律師聘用協(xié)議書
- 重慶高校畢業(yè)協(xié)議書
- 門禁電源購買協(xié)議書
- 餐飲參股合作協(xié)議書
- 購買頂賬商品協(xié)議書
- 香港金融控股協(xié)議書
- 食品問題調(diào)解協(xié)議書
- 閨蜜和解合同協(xié)議書
- 藍(lán)色大氣商務(wù)商業(yè)計(jì)劃書PPT模板
- 青春紅綠燈教學(xué)設(shè)計(jì)中小學(xué)心理健康心理游戲腳本
- 蘇教版二年級(下冊)科學(xué)全冊單元測試卷含期中期末(有答案)
- 《城鎮(zhèn)土地使用稅納稅申報(bào)表》
- 三年級數(shù)學(xué)下冊口算脫式豎式練習(xí)題
- 17025實(shí)驗(yàn)室體系
- 大榆樹溝防洪治理工程初步設(shè)計(jì)報(bào)告
- 8D報(bào)告培訓(xùn)教材(共30頁).ppt
- 屋面及防水工程工程量計(jì)算PPT課件
- 逆作法與順作法施工方案比較
- 植物分類學(xué)-菊科.ppt
評論
0/150
提交評論