《[第04講]用流程圖描述算法》由會員分享,可在線閱讀,更多相關(guān)《[第04講]用流程圖描述算法(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、全國青少年信息學(xué)奧林匹克競賽全國青少年信息學(xué)奧林匹克競賽網(wǎng)絡(luò)學(xué)習(xí)社區(qū)網(wǎng)絡(luò)學(xué)習(xí)社區(qū)C語言語言http:/www.ZXGL.com/omsNoi/上海交大出版社主編李明2009年7月29日版權(quán)所有 Mr.ChenCopyright(2009)C語言程序設(shè)計語言程序設(shè)計主講主講Mr. Chen04第第04講用流程圖描述算法講用流程圖描述算法設(shè)計算法設(shè)計算法 1. 算法的概念算法的概念2. 算法的特點(diǎn)算法的特點(diǎn)3. 算法的描述算法的描述描述算法描述算法 1. 結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖2. 用流程圖描述算法用流程圖描述算法編寫程序編寫程序 1. 根據(jù)流程圖編程根據(jù)流程圖編程2. 調(diào)試程序調(diào)試程序3. 優(yōu)
2、化算法優(yōu)化算法A 復(fù)習(xí)復(fù)習(xí)C 編寫程序編寫程序B 流程圖流程圖2+3+4+5+ +99 = ?1+100高斯小時候的故事高斯小時候的故事智力故事連環(huán)畫智力故事連環(huán)畫本地播放本地播放 遠(yuǎn)程播放遠(yuǎn)程播放開始開始第第1步:步:1+2=3第第2步:步: 3+3=6第第3步:步: 6+4=10 第第99步:步:4950+100=5050結(jié)束結(jié)束分析分析第1組:1+100=101第2組:2+99 =101第3組:3+98 =101第50組: 50+51=101開始開始第1步: 10150=5050結(jié)束結(jié)束=101+算法的特點(diǎn)算法的特點(diǎn)算法(算法(Algorithm)是為解決一個特定問題而采取的)是為解決一
3、個特定問題而采取的確定的、有限的方法和步驟。確定的、有限的方法和步驟。 有窮性:有窮性:一個算法包含的操作步驟是有限的。一個算法包含的操作步驟是有限的。有效性:有效性:算法中的每一個步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到算法中的每一個步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。確定的結(jié)果。有輸出:有輸出:算法執(zhí)行后必須輸出(算法執(zhí)行后必須輸出(1n個)信息。個)信息。有輸入:有輸入:算法執(zhí)行時需要輸入(算法執(zhí)行時需要輸入(0n個)信息。個)信息。確定性:確定性:算法中的每一個步驟都是確定的。算法中的每一個步驟都是確定的。結(jié)構(gòu)化流程圖的符號結(jié)構(gòu)化流程圖的符號流程圖是用一些圖框表示各種操作。流程圖是用一些圖
4、框表示各種操作。用圖形表示算法,直觀形象,易于理解。用圖形表示算法,直觀形象,易于理解。開始/結(jié)束賦值/計算條件起止框起止框輸入輸出框輸入輸出框事件處理框事件處理框判斷框判斷框流程線流程線輸入/輸出開始開始輸入輸入賦值賦值/計算計算輸出輸出結(jié)束結(jié)束結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 (1) 順序結(jié)構(gòu)順序結(jié)構(gòu)/ 文件名:文件名:Yingwuxueshe.c/ 功能:在屏幕上顯示用戶輸入的整數(shù)功能:在屏幕上顯示用戶輸入的整數(shù)int main() int i;printf(請輸入一個整數(shù):請輸入一個整數(shù):);scanf(%d,&i);printf(“你輸入的整數(shù)是:你輸入的整數(shù)是:%d,i);printf(%
5、c,7); printf(n n); system(pause);結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 (2) if-else 選擇結(jié)構(gòu)選擇結(jié)構(gòu)/ 文件名:文件名:Judge.c/ 功能:判斷兩個整數(shù)的大小功能:判斷兩個整數(shù)的大小 int main()int a,b;scanf(%d,&a);scanf(%d,&b);if (a=b)printf(%d %d,a,b);elseprintf(%d =b?否否是是輸入兩個整數(shù) a,b輸出 ab輸出 ab結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 (3) for 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)/ 文件名:文件名:Sum100_for.c/ 功能:計算功能:計算 s=1+2+3+99+100i
6、nt main() int i,s; s=0; for for ( (i=1i=1; ;i i=100;100;i+i+) ) printf(“s=%d,i=%d ,s+i=%d n,s,i,s+i); s=s+i; printf(“n 1+2+3+ +99+100=%d,s); printf(n n); system(pause);開始開始i=100?是是否否賦值 s=0; i=1; 累加 i=i+1;輸出 s結(jié)束結(jié)束計算 s=s+i;結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 (4) while 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)/ 文件名:文件名:Sum100_while.c/ 功能:計算功能:計算 s=1+2+3+99+
7、100int main() int i,s; i=1; s=0; while (i=100) printf(“s=%d,i=%d ,s+i=%d n,s,i,s+i); s=s+i; i=i+1; printf(“ n 1+2+3+ +99+100=%d,s); printf(n n); system(pause);開始開始i=b?否否是是輸入兩個整數(shù) a,b輸出 ab輸出 ab1+2+3+4+5+ +99+100 = ?拓展提高拓展提高用流程圖表示高斯的算法用流程圖表示高斯的算法智力故事連環(huán)畫智力故事連環(huán)畫本地播放本地播放 遠(yuǎn)程播放遠(yuǎn)程播放開始開始輸出 10150=5050結(jié)束結(jié)束Mr. Chen陳家良陳家良GsChenJLhttp:/www.ZXGL.com/omsNoi/