版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu),算法的基本控制結(jié)構(gòu),如何解決分支問題?,例2-2輸入一個年份,判斷是否閏年。,算法的基本控制結(jié)構(gòu),#include using namespace std;void main(void){int year; bool IsLeapYear; cout > year;IsLeapYear = ((year % 4 == 0 && year % 100 != 0)
2、||(year % 400 == 0)); if (IsLeapYear) cout << year << " is a leap year" << endl;else cout << year << " is not a leap year"
3、 << endl;},3,運(yùn)行結(jié)果:Enter the year: 20002000 is a leap year,4,if (表達(dá)式) 語句例:if (x>y) couty) cout<<x; else cout<<y;if (表達(dá)式1) 語句1else if (表達(dá)式2) 語句2else if
4、 (表達(dá)式3) 語句3 …else 語句 n,if 語句 ——三種形式,算法的基本控制結(jié)構(gòu),如何解決多分問題?,例2-3 輸入兩個整數(shù),比較兩個數(shù)的大小。,算法的基本控制結(jié)構(gòu),#includeusing namespace std;void main(){ int x,y; cout>x>>y; if (x!=y) if
5、(x>y) couty"<<endl; else cout<<"x<y"<<endl; else cout<<"x=y"<<endl;},7,運(yùn)行結(jié)果1:Enter x and y:5 8xy,8,一般形式if (
6、) if ( ) 語句 1 else 語句 2else if ( ) 語句 3 else 語句 4注意語句 1、2、3、4 可以是復(fù)合語句,每層的 if 與 else 配對,或用 { } 來確定層次關(guān)系。,算法的基本控制結(jié)構(gòu),特殊的多分支結(jié)構(gòu),例2-4輸入一個0~6的整數(shù),轉(zhuǎn)換成星期輸出。,算法的基本控制結(jié)構(gòu),#include using namespac
7、e std;void main(void){int day;cin >> day;switch (day){ case 0:cout << "Sunday" << endl; break; case 1:cout << "Monday" << endl; break;case 2:co
8、ut << "Tuesday" << endl; break;case 3: cout << "Wednesday" << endl; break; case 4:cout << "Thursday" << endl; break; case 5:cout <<
9、; "Friday" << endl; break; case 6:cout << "Saturday" << endl; break; default: cout << "Day out of range Sunday .. Saturday" << endl;brea
10、k; }},11,一般形式switch (表達(dá)式) { case 常量表達(dá)式 1:語句1 case 常量表達(dá)式 2:語句2 ┆ case 常量表達(dá)式 n:語句n default : 語句n+1 },switch 語句,執(zhí)行順序以case中的常量表達(dá)式值為入口標(biāo)號,由此開始順序執(zhí)行。因此,每個case
11、分支最后應(yīng)該加break語句。,算法的基本控制結(jié)構(gòu),使用switch語句應(yīng)注意的問題,case分支可包含多個語句,且不用{ }。表達(dá)式、判斷值都是int型或char型。若干分支執(zhí)行內(nèi)容相同可共用一組語句。,算法的基本控制結(jié)構(gòu),如何有效地完成重復(fù)工作,例2-5求自然數(shù)1~10之和分析:本題需要用累加算法,累加過程是一個循環(huán)過程,可以用while語句實(shí)現(xiàn)。,算法的基本控制結(jié)構(gòu),#includeusing namespace std
12、;void main(){ int i(1), sum(0); while(i<=10) { sum+=i; //相當(dāng)于sum=sum+i; i++; } cout<<"sum="<<sum<<endl;},運(yùn)行結(jié)果:sum=55,15,while 語句,形式while (表達(dá)式) 語句,執(zhí)行順序先判斷表達(dá)式的值
13、,為 true 時,再執(zhí)行語句。,算法的基本控制結(jié)構(gòu),先執(zhí)行循環(huán)體,后判斷條件的情況,例2-6 輸入一個整數(shù),將各位數(shù)字反轉(zhuǎn)后輸出。,算法的基本控制結(jié)構(gòu),#include using namespace std;void main(void){int n, right_digit, newnum = 0; cout > n;cout << "The number in rever
14、se order is ";do{right_digit = n % 10;cout << right_digit;n /= 10; //相當(dāng)于n=n/10} while (n != 0); cout<<endl;},18,運(yùn)行結(jié)果:Enter the number: 365The number in reverse order is 563,19
15、,do-while 語句,一般形式do 語句while (表達(dá)式),執(zhí)行順序先執(zhí)行循環(huán)體語句,后判斷條件。表達(dá)式為 true 時,繼續(xù)執(zhí)行循環(huán)體與while 語句的比較:While 語句執(zhí)行順序 先判斷表達(dá)式的值,為true 時,再執(zhí)行語句,算法的基本控制結(jié)構(gòu),對比下列程序:,程序1:#includeusing namespace std;void main(){ int i, sum(0); cin
16、>>i; while(i<=10) { sum+=i; i++; } cout<<"sum="<<sum<<endl;},算法的基本控制結(jié)構(gòu),程序2:#includeusing namespace std;void main(){ int i, sum(0); cin>>i; do {
17、 sum+=i; i++; } while(i<=10); cout<<"sum="<<sum<<endl;},,21,for 語句,語法形式for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句,算法的基本控制結(jié)構(gòu),例2-8,輸入一個整數(shù),求出它的所有因子。,算法的基本控制結(jié)構(gòu),#include using namespace std;void
18、 main(void){ int n, k;cout > n;cout << "Number " << n << " Factors ";for (k=1; k <= n; k++)if (n % k == 0)cout << k << " "; cout
19、<< endl;},24,運(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,25,例2-9 編寫程序輸出以下圖案,* ***
20、 ***** ******* ***** *** *,算法的基本控制結(jié)構(gòu),#includeusing namespace std;void main(){ int i,j,n=4; for(i=1;i<=n;i++) //輸出前4行圖案
21、 { for(j=1;j<=30;j++) cout<<' '; //在圖案左側(cè)空30列 for(j=1; j<=8-2*i ;j++) cout<<' '; for(j=1; j<=2*i-1 ;j++) cout<<'*'; cout<<end
22、l; },27,for(i=1;i<=n-1;i++) //輸出后3行圖案 { for(j=1;j<=30;j++) cout<<' '; //在圖案左側(cè)空30列 for(j=1; j<=7-2*i ;j++) cout<<'*'; cout<<endl; }},28,循環(huán)結(jié)構(gòu)與選
23、擇結(jié)構(gòu)相互嵌套,#includeusing namespace std;void main(){ int n;for(n=100; n<=200; n++){ if (n%3!=0) cout<<n;}},算法的基本控制結(jié)構(gòu),例2-10,讀入一系列整數(shù),統(tǒng)計出正整數(shù)個數(shù)i和負(fù)整數(shù)個數(shù)j,讀入0則結(jié)束。分析:需要讀入一系列整數(shù),但是整數(shù)個數(shù)不定,要在每次讀入之后進(jìn)行判斷,
24、因此使用while循環(huán)最為合適。循環(huán)控制條件應(yīng)該是n!=0。由于要判斷數(shù)的正負(fù)并分別進(jìn)行統(tǒng)計,所以需要在循環(huán)內(nèi)部嵌入選擇結(jié)構(gòu)。,算法的基本控制結(jié)構(gòu),#includeusing namespace std;void main(){ int i=0, j=0, n; cout>n; while( n!=0 ) { if(n>0) i++; if(n>n ; } cout&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 1順序結(jié)構(gòu)2分支結(jié)構(gòu)3循環(huán)結(jié)構(gòu)
- 實(shí)驗(yàn)二 順序結(jié)構(gòu)、分支結(jié)構(gòu)程序設(shè)計
- 實(shí)驗(yàn)1順序和分支結(jié)構(gòu)題目
- 初識python程序設(shè)計的順序結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
- 順序結(jié)構(gòu)
- 順序結(jié)構(gòu)(1)
- 10 順序結(jié)構(gòu)
- 順序選擇結(jié)構(gòu)
- 2順序結(jié)構(gòu)
- 順序結(jié)構(gòu)00061
- 循環(huán)結(jié)構(gòu)
- 實(shí)驗(yàn)二 順序結(jié)構(gòu)
- 創(chuàng)建框架和分支結(jié)構(gòu)
- 04-順序結(jié)構(gòu)1
- 實(shí)驗(yàn) 03 順序結(jié)構(gòu)(2010.9.14)
- 順序結(jié)構(gòu)程序設(shè)計
- lazarus講義2(順序結(jié)構(gòu))
- 數(shù)據(jù)結(jié)構(gòu)順序操作
- 邏輯運(yùn)算和分支結(jié)構(gòu)
- 數(shù)據(jù)結(jié)構(gòu)順序表課程設(shè)計--順序表基本實(shí)現(xiàn)和存儲結(jié)構(gòu)
評論
0/150
提交評論