《算法的基本控制結(jié)構(gòu).ppt》由會員分享,可在線閱讀,更多相關(guān)《算法的基本控制結(jié)構(gòu).ppt(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、算法的基本控制結(jié)構(gòu),基本結(jié)構(gòu),順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),1.順序結(jié)構(gòu):按照語句的先后順序執(zhí)行即為順序結(jié)構(gòu),是算法中最簡單的一種結(jié)構(gòu)。,2.選擇結(jié)構(gòu):根據(jù)條件的不同,程序執(zhí)行不同的語句,即為選擇結(jié)構(gòu)。選擇結(jié)構(gòu)的語句有兩種:if語句和switch語句。,3.循環(huán)語句:根據(jù)約束條件的不同,多次重復(fù)執(zhí)行某一條或多條語句的結(jié)構(gòu),稱為循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)的語句有for語句、while語句、dowhile語句三種語句。,為了用符號來表述不同的控制結(jié)構(gòu)或者程序,人們設(shè)計了流程圖,簡單的可以理解為示意圖。,流程圖常用符號:,1.選擇結(jié)構(gòu),if (表達(dá)式) 語句1 else 語句2;,執(zhí)行順序:先計算表達(dá)式的值
2、,若表達(dá)式為true,則執(zhí)行語句1,否則執(zhí)行語句2。語句1和語句2也可以是用大括號括起來的多條語句,流程圖,火車托運(yùn)行李,要根據(jù)行李的重量按不同標(biāo)準(zhǔn)收費(fèi)。50kg以內(nèi)(含50kg),按每千克0.35元收費(fèi),超出50kg的部分按每千克0.50元收費(fèi)?,F(xiàn)輸入托運(yùn)行李的重量,計算并輸出運(yùn)費(fèi)。,if weight=50 pay=weight*50; else pay=pay+(weight-50)*0.5;,if weight=50 pay=weight*0.35; else pay=50*0.35+(weight-50)*0.5;,輸入a,b兩個整數(shù),如果ab的話,交換a,b的值,并輸出a,b的值。
3、 輸入: 15 8 輸出: 15 8,if (ab) c=a; a=b; b=c; ,if語句的嵌套:多次的選擇判斷,需要在if語句內(nèi)多次調(diào)用if語句,稱為if語句的嵌套,不同的嵌套形式:,if (表達(dá)式1) if (表達(dá)式2) 語句1; else 語句2; else if (表達(dá)式3) 語句3; else 語句4;,輸入x,y兩個整數(shù),比較兩個數(shù)字的大小,根據(jù)它們的大小,分別輸出:xy,xy,x=y。 輸入: 8 9 輸出: xy,#include using namespace std; int main() int x,y; cinxy; if (x!=y) if (xy) couty“
4、endl; else cout“xy“endl; else cout“x=y“endl; return 0; ,#include using namespace std; int main() int x,y; cinxy; if (xy) couty“endl; else if (xy) cout“xy“endl; else cout“x=y“endl; return 0; ,輸入一個整數(shù)a,判斷是否為偶數(shù)。是的話輸出“YES”否則輸出“NO”。 輸入: 13 輸出: NO,輸入三角形的三邊,判斷它是否直角三角形,若是則輸出“yes”,否則輸出“no”,若根本形成不了三解形則輸出“not a
5、 triangle”。 輸入: 3 4 5 輸出: yes,從鍵盤上讀入三個數(shù),按由大到小的順序把它們打印出來。 輸入: 13 12 14 輸出: 14 13 12,輸入一個三位數(shù)的整數(shù),將數(shù)字位置重新排列,組成一個盡可大的三位數(shù)。 輸入: 213 輸出: 321,#include using namespace std; int main() char ch1,ch2,ch3,t; cinch1ch2ch3; if (ch1t; ,switch語句:根據(jù)同一表達(dá)式的多個不同的結(jié)果,分別進(jìn)行不同的選擇,由switch語句來解決,避免if語句的反復(fù)嵌套。,switch (表達(dá)式) case 常量
6、1:語句1; case 常量2:語句2; case 常量n:語句n; default:語句n+1; ,switch語句的執(zhí)行順序:首先計算switch語句中表達(dá)式的值,然后在case語句中找值相等的常量,則以此為入口,開始順序執(zhí)行,執(zhí)行結(jié)束后必須加break。如果沒有找到相等的值,則從default開始執(zhí)行。,switch語句后面的表達(dá)式的值必須是整型、字符型、枚舉型之一。 每個常量的值不能相同,但次序不影響執(zhí)行結(jié)果。 每個case分支可以有多條語句,但不必用。 每個case分支要以break結(jié)束,用以結(jié)束switch語句。 當(dāng)有若干分支需要執(zhí)行相同操作時,多個case可以用執(zhí)行相同的語句。,通過鍵盤輸入06,轉(zhuǎn)換成星期輸出。 輸入:0 輸出:Sunday,通過鍵盤輸入年份和月份,輸出該月共有多少天。 輸入:2011 11 輸出:30,