C语言控制结构程序设计,第3讲 C语言程序的基本控制结构_C语言程序设计(上)_pps_大学课件预览_高等教育资讯网...
Page 1
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮第三講 C語言程序的基本控制結(jié)構(gòu)參考書,計算機程序設(shè)計基礎(chǔ),第三章
,C程序設(shè)計,第四章、第五章
Page 2
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮本講主要內(nèi)容
結(jié)構(gòu)化程序設(shè)計
if 語句
switch 語句
while 語句
do-while 語句
for 語句
break 和 continue 語句
Page 3
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮結(jié)構(gòu)化程序設(shè)計
計算機程序=算法+數(shù)據(jù)結(jié)構(gòu)
計算機程序設(shè)計=算法+數(shù)據(jù)結(jié)構(gòu)
+程序設(shè)計方法學(xué)
Page 4
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮結(jié)構(gòu)化程序設(shè)計
— 結(jié)構(gòu)化算法(一)
算法就是解決問題的方法。
例如,秦九韶在,九章算術(shù),中記載的,求最大公約數(shù)的輾轉(zhuǎn)相除法:
第一步,算法開始。
第二步,輸入原始數(shù)據(jù):取得所給定的自然數(shù) m 和 n。
第三步,當(dāng) m≠n 時,順序執(zhí)行第四步;反之,轉(zhuǎn)到第六步。
第四步,若 m>n,則 m←m -n ;否則 n←n -m。
第五步,返回第三步。
第六步,輸出結(jié)果:所求最大公約數(shù)為 m。
第七步,算法結(jié)束。
Page 5
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮算法的特征:
有窮性如,Sin x=x/1-x3/3!+x5/5!-x7/7!+… 不是算法。
N!=1× 2× 3× … × N 是算法。
確定性如:菜譜中說,加少許鹽,不嚴(yán)格,不是算法。
可執(zhí)行性
0個或多個輸入
1個或多個輸出結(jié)構(gòu)化程序設(shè)計
— 結(jié)構(gòu)化算法(二)
Page 6
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
算法類型:
–數(shù)值算法、非數(shù)值算法。
基本結(jié)構(gòu):
結(jié)構(gòu)化算法必須只能由下列三種基本控制結(jié)構(gòu)所構(gòu)成:
–順序結(jié)構(gòu)
–分支結(jié)構(gòu)
–循環(huán)結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計
— 結(jié)構(gòu)化算法(三
)
Page 7
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮結(jié)構(gòu)化程序設(shè)計
— 結(jié)構(gòu)化算法(三)
結(jié)構(gòu)化算法的本質(zhì)屬性:
有且僅有一個入口
有且僅有一個出口
無死塊(即永遠(yuǎn)無法執(zhí)行到的塊)
無死循環(huán)塊
Page 8
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮算法描述工具:
流程圖
N- S圖
PDL 語言結(jié)構(gòu)化程序設(shè)計
— 結(jié)構(gòu)化算法(四)
Page 9
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮結(jié)構(gòu)化程序設(shè)計
— 結(jié)構(gòu)化程序設(shè)計技術(shù)與方法
模塊化結(jié)構(gòu)設(shè)計方法在程序設(shè)計中,將一個復(fù)雜的算法(或程序)分解成若干個相對獨立、功能單一的模塊,利用這些模塊即可適當(dāng)?shù)亟M合成所需要的全局算法(或)程序。
自頂向下結(jié)構(gòu)設(shè)計方法從總體出發(fā),居高臨下,逐層分解和逐步細(xì)化。
逐步求精結(jié)構(gòu)設(shè)計方法實質(zhì)上也是一種自頂向下的設(shè)計方法。
首先拋開細(xì)節(jié)設(shè)計出抽象算法,然后把抽象數(shù)據(jù)和操作逐步具體化,直到可以由計算機具體實現(xiàn)為止。
Page 10
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
if (表達(dá)式 ) 語句例,if (x>y) printf("%d",x);
if (表達(dá)式 ) 語句 1 else 語句 2
例,if (x>y) printf("%d",x);
else printf("%d",y);
if (表達(dá)式 1) 語句 1
else if (表達(dá)式 2) 語句 2
else if (表達(dá)式 2) 語句 3
…
else 語句 n
if 語句
—— 三種形式
Page 11
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
一般形式
if ( )
if ( ) 語句 1
else 語句 2
else
if ( ) 語句 3
else 語句 4
注意
– 語句 1,2,3,4 可以是復(fù)合語句每層的 if 與
else 配對,或用 { } 來確定層次關(guān)系
if 語句
—— 嵌套
Page 12
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮條件運算符
一般形式:
表達(dá)式 1?表達(dá)式 2:表達(dá)式 3
執(zhí)行順序:
先求解 表達(dá)式 1,若值為非 0,則求解 表達(dá)式 2,表達(dá)式 2的值為最終結(jié)果;
若值為 0,則求解 表達(dá)式 3,表達(dá)式 3的值為最終結(jié)果。
注意:
– 條件 運算符優(yōu)級 高于 賦值 運算符,低于 關(guān)系 運算符和 算術(shù) 運算符;
– 結(jié)合方向為 自右至左;
– 只能取代簡單的 if語句:內(nèi)嵌語句為賦值語句,且兩個分支都給同一個變量賦值;
– 表達(dá)式 1,2,3的類型可以不同,條件表達(dá)式的最終類型為 2 和 3 中較高的類型。
Page 13
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
一般形式
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分支最后應(yīng)該加 break語句。
每個常量表達(dá)式的值不能相同,次序不影響執(zhí)行結(jié)果。
可以是多個語句,但不必用 { }。
可以是 整型、字符型、枚舉型
Page 14
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮使用 switch語句應(yīng)注意的問題
case分支可包含多個語句,且不用 { }
表達(dá)式、判斷值都是 int型或 char型
若干分支執(zhí)行內(nèi)容相同可共用一組語句
Page 15
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
while 語句
形式
while (表達(dá)式 ) 語句可以是復(fù)合語句,其中必須含有改變條件表達(dá)式值的語句。
執(zhí)行順序先判斷表達(dá)式的值,非 0 再執(zhí)行語句。
—— 實現(xiàn),當(dāng)型,循環(huán)。
Page 16
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
類似于直到型循環(huán),但不同。
do-while 語句
一般形式
do 語句
while (表達(dá)式 )
可以是復(fù)合語句,其中必須含有改變條件表達(dá)式值的語句。
執(zhí)行順序先執(zhí)行語句,后判斷條件。
表達(dá)式非 0時,繼續(xù)執(zhí)行循環(huán)體。
while 語句與 do-while 語句的比較
While 語句執(zhí)行順序先判斷表達(dá)式的值,非 0 再執(zhí)行語句
—— 實現(xiàn),當(dāng)型,循環(huán)
。
直到型循環(huán)是當(dāng)條件表達(dá)式為“真”時,停止循環(huán)。
Page 17
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
for 語句
形式
for (表達(dá)式 1;表達(dá)式 2;表達(dá)式 3) 語句循環(huán)前先求解非 0時執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體后求解
流程圖
P70 圖 5.6
注意事項
P70- 71
Page 18
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
break 和 continue 語句
break語句使程序從循環(huán)體和 switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句。不能用在別處。
continue 語句結(jié)束本次循環(huán),接著進行是否執(zhí)行下一次循環(huán)的判斷。
Page 19
C語言程序設(shè)計 清華大學(xué) 鄭莉 安穎蓮
,C 程序設(shè)計,P64 4.5- 4.8
,C 程序設(shè)計,P79 5.2,5.6,
5.10,5.15
復(fù)習(xí):,C 程序設(shè)計,第四、五章
,計算機程序設(shè)計基礎(chǔ),第三章
熟悉一種 C語言編譯環(huán)境的調(diào)試方法。
作 業(yè)
總結(jié)
以上是生活随笔為你收集整理的C语言控制结构程序设计,第3讲 C语言程序的基本控制结构_C语言程序设计(上)_pps_大学课件预览_高等教育资讯网...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 待面签是什么意思
- 下一篇: c语言的函数中局部变量可以return吗