C程序設(shè)計第二章算法程序的靈魂P(guān)PT課件_第1頁
C程序設(shè)計第二章算法程序的靈魂P(guān)PT課件_第2頁
C程序設(shè)計第二章算法程序的靈魂P(guān)PT課件_第3頁
C程序設(shè)計第二章算法程序的靈魂P(guān)PT課件_第4頁
C程序設(shè)計第二章算法程序的靈魂P(guān)PT課件_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第1頁C程序設(shè)計第二章 算法程序的靈魂主講教師: 魯 萍西安建筑科技大學 理學院第2章 程序的靈魂算法2.1 算法的概念算法的概念2.2 簡單算法舉例簡單算法舉例2.3 算法的特性算法的特性2.4 怎樣表示一個算法怎樣表示一個算法2.5 結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計方法小小 結(jié)結(jié)習習 題題2.1 算法的概念n程序的概念n程序就是一系列的操作步驟(指令),告訴計算機“做什么”和“怎樣做”。n程序程序 = 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) + 算法算法對數(shù)據(jù)的描述,對數(shù)據(jù)的描述,C語言中語言中 的的“數(shù)數(shù)據(jù)類型據(jù)類型”為解決一個問題而采為解決一個問題而采取的方法和步驟取的方法和步驟(對數(shù)據(jù)處理的描述對數(shù)據(jù)處理

2、的描述)2.2 簡單算法舉例例2.1 求12345 方法一:方法一:S1:求:求12,得結(jié)果,得結(jié)果2S2:將步驟:將步驟1的結(jié)果的結(jié)果2再再3,得結(jié)果,得結(jié)果6S3:將步驟:將步驟2的結(jié)果的結(jié)果6再再4,得結(jié)果,得結(jié)果24S4:將步驟:將步驟3的結(jié)果的結(jié)果24再再5,得結(jié)果,得結(jié)果120方法二:方法二:S1:使:使 p=1 (p用于保存累乘結(jié)果)用于保存累乘結(jié)果)S2:使:使 i=2 (i用于保存乘數(shù))用于保存乘數(shù))S3:使:使 pipS4:使:使 i 遞增遞增 ,i+1 iS5:如果:如果i5 , 返回返回S3 否則,得到否則,得到p即為累乘結(jié)果即為累乘結(jié)果如果求1 1000的累乘?999

3、步如果求1 1000的累乘?如果求1 1000中偶數(shù)的累乘?100022.2 簡單算法舉例例2.2 對50個學生,成績在80分以上的打印出來。 ni表示第i個學生,gi表示第i個學生的成績方法:S1:使 i=1S2:如果gi80,則打印ni和giS3:i+1 iS5:如果i50 ,返回S2 2.3 算法的特點(1)有窮性有窮性。算法包含的步驟是有限的。 (2)確定性確定性。每個步驟是確定的而不是摸棱兩可的。 (3)有效性有效性。算法的每個步驟都應(yīng)當能有效地執(zhí)行,并能得到確定的結(jié)果。 (4)有一個或多個輸出輸出。無輸出的算法是無實際意義的。 (5)有零個或多個輸入輸入。算法運行時可以從外界取得必

4、要的信息(或數(shù)據(jù))。2.4 算法的表示方法表示算法常用方法有:表示算法常用方法有:1 1自然語言自然語言 2 2傳統(tǒng)流程圖傳統(tǒng)流程圖3 3N-SN-S流程圖流程圖 (在傳統(tǒng)流程圖的基礎(chǔ)上去(在傳統(tǒng)流程圖的基礎(chǔ)上去掉了流程線)掉了流程線)4 4偽代碼(不必嚴格遵循語法規(guī)則)偽代碼(不必嚴格遵循語法規(guī)則)5 5計算機語言計算機語言 (即編寫程序,重點掌握)(即編寫程序,重點掌握)2.4.2 用流程圖表示算法一、流程圖的概念一、流程圖的概念 一種表示程序邏輯的圖形格式,用來幫助設(shè)計程序。 流程中采用各中流程圖符,用流程線指示流程方向 傳統(tǒng)流程圖符號及其含義起止框處理框判斷框輸入、輸出框預(yù)先規(guī)定的過程

5、框循環(huán)框連結(jié)點流向線2.4.2 用流程圖表示算法例2.1 求12345 方法二:S1:使 p=1 (p用于保存累乘結(jié)果)S2:使 i=2 (i用于保存乘數(shù))S3:使 pipS4:使 i 遞增 ,i+1 iS5:如果i5 , 返回S3 否則,得到p即為累乘結(jié)果i=5p=pip=1i=i+1結(jié)束開始i=22.4.3 三種基本結(jié)構(gòu) 1)順序結(jié)構(gòu)順序結(jié)構(gòu)。是一種基本結(jié)構(gòu)。按先后順序執(zhí)行。 2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)(或選取結(jié)構(gòu)或分支結(jié)構(gòu))。根據(jù)給定的條件選擇其中一種加以執(zhí)行。 3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)。當條件滿足時,有限的重復(fù)執(zhí)行規(guī)定(或有限)的步驟。C語言提供了3種基本循環(huán)結(jié)構(gòu)。流程圖對程序的三種基本結(jié)構(gòu)的表

6、示順序 分支 循環(huán)ABPAB不成立成立成立不成立PA傳統(tǒng)流程圖當p成立時AB 不成立AB成立當p成立時N-S流程圖取掉了帶箭頭的流程線,全部算在寫在一個矩型框內(nèi)。在該矩型框內(nèi)還可以包含其它的從屬于它的框2.4.4 用N-S流程圖表示算法例2.1 求12345 i=5p=pip=1i=i+1結(jié)束開始i=2i=5成立輸出pp=pii=i+1i=2p=12.4. 用N-S流程圖表示算法方法:S1:使 i=1S2:如果gi80,則打印ni和giS3:i+1 iS5:如果i50 ,返回S1 否打印ni gi是gi80i=1直到i50i=i+1i=50打印ni和gii=i+1結(jié)束開始i=1gi80例2.2

7、 對50個學生,成績在80分以上的打印出來。 ni表示第i個學生,gi表示第i個學生的成績。2.4.6 用計算機語言表示算法例2.1 求12345 i=5p=pip=1i=i+1結(jié)束開始i=2main() int i, p; p=1; i=2; while ( i=5) p=p*i; i=i+1; printf(“%d”,p);2.5 結(jié)構(gòu)化程序設(shè)計的基本方法例2.3 錄入50個學生的成績,統(tǒng)計10090,8980590各分數(shù)段學生人數(shù),并顯示統(tǒng)計結(jié)果1:錄入50個 學生的成績2:統(tǒng)計各個分數(shù)段 學生的人數(shù)3:顯示統(tǒng)計結(jié)果S1.1:使:使i=1 S1.2:輸入:輸入 ni 學生的成績學生的成績

8、S1.3:i=i+1S1.4:如果:如果i50,執(zhí)行,執(zhí)行S1.2S2.1:使:使i=1 S2.2:判斷:判斷ni學生的屬于哪個學生的屬于哪個分數(shù)段,該分數(shù)段人數(shù)分數(shù)段,該分數(shù)段人數(shù)+1S2.3:i=i+1S2.4:如果:如果i50,執(zhí)行,執(zhí)行S2.2S3.1:使:使i=1 S3.2:顯示:顯示countiS3.3:i=i+1S3.4:如果:如果i5,執(zhí)行,執(zhí)行S3.2(2)逐步細化逐步細化(1)自頂向下自頂向下(3)模塊化設(shè)計模塊化設(shè)計輸輸入入統(tǒng)統(tǒng)計計輸輸出出循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)(分支結(jié)構(gòu)分支結(jié)構(gòu))循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)(4)結(jié)構(gòu)化編碼結(jié)構(gòu)化編碼2.5 結(jié)構(gòu)化程序設(shè)計的基本方法將一個復(fù)

9、雜問題的求解過程分階段進行 1)自頂向下 2)逐步細化 3)模塊化設(shè)計 4)結(jié)構(gòu)化編碼小 結(jié)程序程序 = 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) + 算法算法為解決一個問題而采取的方法和步驟為解決一個問題而采取的方法和步驟(1)有窮性有窮性 (2)確定性確定性 (3)有效性有效性 (4) 輸出輸出 (5) 輸入輸入ABPAB不成立成立成立不成立PA傳統(tǒng)流程圖當p成立時AB 不成立AB成立當p成立時N-S流程圖順序順序 分支分支 循環(huán)循環(huán)第二章習題2.1 什么是算法描述數(shù)據(jù)處理過程步驟的方法。例:計算總評成績:S1:計算平時成績S2:計算考試成績S3:總評成績=平時成績30%+考試成績70%第二章習題 2.4 (1)A和B的內(nèi)容互換CBAC結(jié)束開始BA

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論