【正文】
處理框 連接點(diǎn) 流程線 _____常見(jiàn)流程圖符號(hào) 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 流程圖是一種傳統(tǒng)的算法表示法,利用 幾何圖形的框 來(lái)代表各種不同性質(zhì)的操作,用流程線來(lái)指示算法的執(zhí)行方向。由于其簡(jiǎn)單直觀,所以應(yīng)用廣泛,特別是在早期語(yǔ)言設(shè)計(jì)階段,只有通過(guò)流程圖才能簡(jiǎn)明地表述算法,流程圖成為程序員們交流的重要手段,直到結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言出現(xiàn),對(duì)流程圖的依賴才有所降低 【 例 2】 的算法的流程圖 開(kāi) 始 i = 9 a1 = 1 i ≥ 1 i = i 1 a0 = 2*(a1+1) a1 = a0 輸出 a0 結(jié) 束 T 【 例 1】 的算法的流程圖 MAX ← A MAX ← B A B 輸入 A, B, C 開(kāi) 始 MAX ← C 輸出 MAX 結(jié) 束 C MAX T T F F 34 3. 算法的描述方法 ? NS結(jié)構(gòu)化流程圖描述 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C NS結(jié)構(gòu)化流程圖是美國(guó)學(xué)者 1973年提出的, NS圖就是以這兩位學(xué)者名字的首字母命名的。它的最重要的 特點(diǎn)就是完全取消了流程線 , 這樣算法被迫只能從上到下順序執(zhí)行,從而避免了算法流程的任意轉(zhuǎn)向,保證了程序的質(zhì)量 。與傳統(tǒng)流程圖相比, NS圖的另一個(gè)優(yōu)點(diǎn)就是既形象直觀,又比較節(jié)省篇幅,尤其適合于結(jié)構(gòu)化程序的設(shè)計(jì)。 輸入 A, B, C A B T F MAX←A MAX←B C MAX T F MAX←C 輸出 MAX 【 例1 】 的算法的 NS流程圖 i ← 9 a1 ← 1 當(dāng) i 1 a0 ← 2*(a1+1) a1 ← a0 i ← i 1 輸出 a0 【 例2 】 的算法的 NS流程圖 35 3. 算法的描述方法 ? 偽碼描述 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 偽碼是指介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的一種代碼,是幫助程序員制定算法的智能化語(yǔ)言,它不能在計(jì)算機(jī)上運(yùn)行,但是使用起來(lái)比較靈活,無(wú)固定格式規(guī)范,只要寫(xiě)出來(lái)自己或別人能看懂即可,由于它與計(jì)算機(jī)語(yǔ)言比較接近,因此易于轉(zhuǎn)換為計(jì)算機(jī)程序。 用偽碼描述 【 例 1】 的算法 input A, B, C if A B then MAX = A else MAX = B if C MAX then MAX = C print MAX 36 4. 算法的基本結(jié)構(gòu) (重點(diǎn)的重點(diǎn),伴你編程到永遠(yuǎn) ) (1) 順序結(jié)構(gòu) A B C A 條件 A B T F (2) 分支結(jié)構(gòu) 條件 T F (3) 循環(huán)結(jié)構(gòu) A T F 條件 A 條件 T F 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 37 順序程序設(shè)計(jì)舉例 【 例 1】 任意從鍵盤(pán)輸入一個(gè)三位整數(shù),要求正確地分離出它的個(gè)位、十位和百位數(shù),并分別在屏幕上輸出。 程序設(shè)計(jì)的分析: 根據(jù)以上的分析,這個(gè)程序應(yīng)這樣設(shè)計(jì): (1) 定義一個(gè)整型變量 x,用于存放用戶輸入的一個(gè)三位整數(shù);再定義三個(gè)整型變量 b0、 b b2,用于存放計(jì)算后個(gè)位、十位和百位數(shù)。 (2) 調(diào)用 scanf函數(shù)輸入該三位整數(shù)。 (3) 利用上述計(jì)算方法計(jì)算該數(shù)的個(gè)位、十位和百位數(shù)。 (4) 輸出計(jì)算后的結(jié)果。 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 38 include void main ( ) { int x, b0, b1, b2。 //變量定義 printf (please input an integer x: )。 //提示用戶輸入一個(gè)整數(shù) scanf (%d, amp。x)。 //輸入一個(gè)整數(shù) b2 = x / 100。 //用整除方法計(jì)算最高位 b1 = (x b2 * 100) / 10。 //計(jì)算中間位 b0 = x % 10。 //用求余數(shù)法計(jì)算最低位 printf (bit2 = %d, bit1 = %d, bit0 = %d\n, b2, b1, b0)。 //輸出結(jié)果 } 具體程序如下: please input an integer x: 456↙ bit2 = 4, bit1 = 5, bit0 = 6 運(yùn)行結(jié)果 : 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 思考問(wèn)題?假如輸入 20位 …? 39 ( P100例 4- 13) 【 例 1】 小寫(xiě)字母轉(zhuǎn)盤(pán)(如下圖所示)。 這個(gè)程序要求用戶輸入一個(gè)小寫(xiě)字母字符,求出該字母字符的前驅(qū)和后繼字符,例如, c字符的前驅(qū)和后繼分別是 b和 d, a字符的前驅(qū)和后繼分別是 z和b, z字符的前驅(qū)和后繼分別是 y和 a。 a b c d e f z y x . . . 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 40 本章小結(jié) 語(yǔ)言程序設(shè)計(jì)教程 第二版 第四章 基本輸入輸出和順序程序設(shè)計(jì) C 各種輸入輸出、程序的三種控制語(yǔ)句,本次課特別講了順序結(jié)構(gòu) 41 1 編程實(shí)現(xiàn)如下圖形。( 15分) a aaa aaaaa aaaaaaa ***** *** * 功能說(shuō)明: 編寫(xiě)程序,實(shí)現(xiàn)以下成績(jī)處理功能(輸出格式參見(jiàn)示例): ( 1)輸入 6個(gè)成績(jī)(浮點(diǎn)數(shù)類(lèi)型 ); ( 2)計(jì)算并輸出累加和(記為 sum)與平均值(記為 ave),均保留二位小數(shù); ( 3)將 ave及以上的成績(jī)歸為 A檔, ave以下的成績(jī)歸為 B檔,統(tǒng)計(jì)并輸出A、 B兩檔的人數(shù)。 運(yùn)行示例: 輸入: 1 2 3 4 5 6 輸出: Sum=, Ave=, A=3, B=3