c語言程序設(shè)計(jì)課件:算法_第1頁
c語言程序設(shè)計(jì)課件:算法_第2頁
c語言程序設(shè)計(jì)課件:算法_第3頁
c語言程序設(shè)計(jì)課件:算法_第4頁
c語言程序設(shè)計(jì)課件:算法_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 第二章第二章 算法算法 2 2.1 .1 算法的概念算法的概念 要利用計(jì)算機(jī)處理問題,光學(xué)習(xí)語言要利用計(jì)算機(jī)處理問題,光學(xué)習(xí)語言的語法規(guī)則還不夠,最重要的是要學(xué)會(huì)的語法規(guī)則還不夠,最重要的是要學(xué)會(huì)針對(duì)各類型的問題,擬定出有效的解題針對(duì)各類型的問題,擬定出有效的解題方法和步驟。方法和步驟。解題方法和步驟就是算法解題方法和步驟就是算法。算法算法: 為了解決一個(gè)問題而采取的有限步驟。為了解決一個(gè)問題而采取的有限步驟。 計(jì)算機(jī)算法計(jì)算機(jī)算法: 如何使計(jì)算機(jī)一步一步地工作的具體過程。如何使計(jì)算機(jī)一步一步地工作的具體過程。 利用計(jì)算機(jī)處理問題的步驟: 1)設(shè)計(jì)好算法算法設(shè)計(jì); 2)用計(jì)算機(jī)語言實(shí)現(xiàn)算法程

2、序設(shè)計(jì)。 算法必須是“有效”的。 算法設(shè)計(jì)還要充分考慮算法的好壞。 衡量算法好壞的主要標(biāo)準(zhǔn): 程序簡(jiǎn)練。 執(zhí)行速度快。 占空間少。 例:考慮 的算法。算法:直接表達(dá)。直接用語句 s=1+2+3+4+5+6+7+8+9+10當(dāng)項(xiàng)數(shù)較多時(shí)該算法不適用s=i110算法:迭代法(累加求和法) s=1+2+3+4+5+6+7+8+9+10 算法步驟: s i 使s=0 + 使i=1 累加器 記數(shù)器 s+is i+1i 若i10轉(zhuǎn),否則轉(zhuǎn) 輸出s01123364105該算法通用,是好算法2.2 2.2 算法的表示算法的表示 算法需要有統(tǒng)一的表示方法算法需要有統(tǒng)一的表示方法 常用的表示方法有:常用的表示方法

3、有: 自然語言自然語言 流程圖流程圖 結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 N-SN-S流程圖流程圖. . 1、自然語言自然語言 對(duì)于計(jì)算對(duì)于計(jì)算 s=1+2+3+4+5+6+7+8+9+10s=1+2+3+4+5+6+7+8+9+10 用自然語言表示為:用自然語言表示為: 使使s=0s=0 (s s為累加器)為累加器) 使使i=1i=1 (i i為計(jì)數(shù)器)為計(jì)數(shù)器) s+iss+is (累加求和公式)(累加求和公式) i+1ii+1i (計(jì)數(shù)器加(計(jì)數(shù)器加1 1) 若若i10i10轉(zhuǎn)轉(zhuǎn), ,否則轉(zhuǎn)否則轉(zhuǎn) 輸出輸出s s的值的值 特點(diǎn):通俗易懂、文字冗長、含義不大嚴(yán)格。 2、流程圖流程圖 用流程圖符號(hào)表示

4、算法。 常用的流程圖符號(hào) 起止框 輸入輸出框 處理框 流程線 判斷框 對(duì)于計(jì)算 s=1+2+3+4+5+6+7+8+9+10 用流程圖表示為:s+i s i+1 i S+i s S+i s i10 輸出s 0 s 1 i 直觀形象,易于理解,次序清楚YN3、結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖 傳統(tǒng)的流程圖有一個(gè)弊端:對(duì)流程線沒有嚴(yán)格的限制,對(duì)于較復(fù)雜的算法可能會(huì)變成亂麻一般(BS型算法)。 為克服這一弊端,提出了由三個(gè)基本結(jié)構(gòu)組成算法流程圖的思想: 結(jié)構(gòu)化流程圖 三個(gè)基本結(jié)構(gòu): 順序結(jié)構(gòu) 按固定順序(從上到下或從左到右)執(zhí)行的結(jié)構(gòu)。 ABab 選擇結(jié)構(gòu) 根據(jù)條件P選擇執(zhí)行哪一個(gè)分支。 成立 不成立 pA

5、Bab成立不成立例:計(jì)算 y= 1/x 當(dāng)x0時(shí) y= 10000 當(dāng)x=0時(shí) 的算法流程圖圖: 選擇結(jié)構(gòu) 輸入x X=0? 10000y 1/xy 輸出y YN 循環(huán)結(jié)構(gòu) 重復(fù)執(zhí)行某些操作的結(jié)構(gòu)。 分為兩種: 當(dāng)型循環(huán)和直到型循環(huán)。 當(dāng)型循環(huán) 直到型循環(huán) P1AAP2aabbYYNN 可以看出,每個(gè)基本結(jié)構(gòu)都只有一個(gè)入口和一個(gè)出口,因此,用三個(gè)基本結(jié)構(gòu)構(gòu)成的流程圖不會(huì)象亂麻一般,用三個(gè)基本結(jié)構(gòu)構(gòu)成的流程圖就成為結(jié)構(gòu)化流程圖,用結(jié)構(gòu)化流程圖描述的算法稱為結(jié)構(gòu)化算法,相應(yīng)的程序設(shè)計(jì)就稱為結(jié)構(gòu)化程序設(shè)計(jì)。 觀察前例: 0 s 1 i S+i s i+1 i i10 輸出s 順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)yn4 N-SN-S流程圖流程圖N-S流程圖的三個(gè)基本結(jié)構(gòu): ABP成立不成立ABAB當(dāng)P1直到P2順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)例:計(jì)算 y= 1/x 當(dāng)x0時(shí) y= 10000 當(dāng)x=0時(shí) 的N-S流程圖:輸入x X=0?是否10000y 1/xy 輸出y 例: 計(jì)算 s=1+2+3+4+5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論