C語言教學(xué) 第8章.ppt_第1頁
C語言教學(xué) 第8章.ppt_第2頁
C語言教學(xué) 第8章.ppt_第3頁
C語言教學(xué) 第8章.ppt_第4頁
C語言教學(xué) 第8章.ppt_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第8章 程序的靈魂算法與流程圖,算法基礎(chǔ) 流程圖的基礎(chǔ) 如何表示一個算法 結(jié)構(gòu)化程序設(shè)計方法,8.1 算法基礎(chǔ),8.1.1 算法的概念 8.1.2 算法的特性 8.1.3 簡單算法舉例解方程,8.1.1 算法的概念 算法(Algorithm):將為了解決問題所制訂的步驟、方法。 利用計算機涉及到兩類算法問題: (1) 數(shù)值性計算問題 (2) 非數(shù)值性計算問題 對算法的學(xué)習(xí)包括五個方面的內(nèi)容: 設(shè)計算法、表示算法、確認算法、分析算法、驗證算法,8.1.2 算法的特性 1有窮性 2確定性 3有效性 4有零或多個輸入 5有一個或多個輸出,8.1.3 簡單算法舉例解方程 【范例8-1】 計算下面的分段

2、函數(shù)。 算法描述: 輸入x的值; 判斷x是否大于0,若大于0,則y為2x+1,然后轉(zhuǎn)第5步;否則進行第3步; 判斷x是否等于0,若等于0,則y為0,然后轉(zhuǎn)第5步;否則進行第4步; y為3x+1(因為2、3步條件不成立,則肯定第4步條件成立); 輸出y的值后結(jié)束。,8.2 流程圖的基礎(chǔ),8.2.1 流程圖中的元素及含義 8.2.2 流程圖的繪制,8.2.1 流程圖中的元素及含義 流程圖主要用兩種:傳統(tǒng)流程圖和N-S流程圖。 1傳統(tǒng)流程圖 2、N-S流程圖,8.2.2 流程圖的繪制 1使用word自帶的流程圖繪圖工具 2、使用Visio繪制工具,8.3 如何表示一個算法,8.3.1 用自然語言表示

3、算法 8.3.2 用流程圖表示算法 8.3.3 用傳統(tǒng)流程圖表示三種基本結(jié)構(gòu) 8.3.4 用N-S圖表示算法 8.3.5 用偽代碼表示算法 8.3.6 用計算機語言表示算法,8.3.1 用自然語言表示算法 自然語言是最簡單的描述算法的工具。 【范例8-2】 用自然語言描述s=1+2+.+ 100 的算法。 算法描述: S1:把0放入S單元; S2:把1放入i單元; S3:將S+i賦給S; S4;i值加1; S5:判斷i是否小于等于100? 是,轉(zhuǎn)S3;否則轉(zhuǎn)S6; S6:輸出S的值,結(jié)束。,8.3.1 用自然語言表示算法 【范例8-3】判定2010-2050年中的哪一年是閏年,將結(jié)果輸出。(閏

4、年的條件是:能被4整除,但不能被100整除;或者能被400整除的年份)。 算法描述: S1:將2010放入y單元; S2:若y不能被4整除,則轉(zhuǎn)到S5; S3:若y能被4整除,不能被100整除,則輸出y,然后轉(zhuǎn)到S5; S4:若y能被400整除,則輸出y,然后轉(zhuǎn)到S5; S5:將y +1賦給y; S6:當y2500,結(jié)束。,8.3.2 用流程圖表示算法 流程圖相對于自然語言來說更直觀形象,易于理解簡潔直觀。 一個流程圖包括以下幾部分: 表示相應(yīng)操作的框; 帶箭頭的流程線; 框內(nèi)外必要的文字說明,8.3.2 用流程圖表示算法 一個流程圖包括以下幾部分: 表示相應(yīng)操作的框; 帶箭頭的流程線; 框內(nèi)

5、外必要的文字說明。 【范例8-4】 求區(qū)間100, 200內(nèi)10個隨機整數(shù)中的最大數(shù)、最小數(shù)。,8.3.3 用傳統(tǒng)流程圖表示三種基本結(jié)構(gòu) 1、順序結(jié)構(gòu) 2、選擇結(jié)構(gòu),8.3.3 用傳統(tǒng)流程圖表示三種基本結(jié)構(gòu) 3、循環(huán)結(jié)構(gòu),8.3.4 用N-S圖表示算法 1、順序結(jié)構(gòu) 2、選擇結(jié)構(gòu),8.3.4 用N-S圖表示算法 3、循環(huán)結(jié)構(gòu),8.3.4 用N-S圖表示算法 【范例8-5】 求兩個數(shù)的最大公約數(shù)。,求最大公約數(shù)通常用“輾轉(zhuǎn)相除法”, 方法如下: (1)比較兩數(shù),并使m大于n。 (2)將m作被除數(shù),n作除數(shù),相除后余數(shù)為r。 (3)將mn,nr; (4)若r=0,則m為最大公約數(shù),結(jié)束循環(huán)。若r0

6、,執(zhí)行步驟步驟(2)和(3)。,8.3.5 用偽代碼表示算法 偽代碼是介于自然語言與計算機語言之間的一種算法描述工具。 【范例8-6】 用偽代碼描述s=1+2+.+100的算法。 01 s置初值為0; 02 i置初值為0; 03 while(i100) 04 05 s=s+i 06 i=i+1 07 08 輸出s的值;,8.3.6 用計算機語言表示算法 計算機語言通常分為三類:即機器語言,匯編語言和高級語言。,8.4 結(jié)構(gòu)化程序設(shè)計方法,結(jié)構(gòu)化程序設(shè)計的思想:自頂向下、逐步求精; 即首先把一個復(fù)雜的大問題分解為若干相對獨立的小問題。如果小問題仍較復(fù)雜,則可以把這些小問題又繼續(xù)分解成若干子問題,這樣不斷地分解,使得小問題或子問題簡單到能夠直接用程序的三種基本結(jié)構(gòu)表達為止。,8.5 綜合應(yīng)用求一元二次方程的根,【范例8-7】求一元二次方程:ax2+bx+c=0的根。,8.5 綜合應(yīng)用求一元二次方程的根,【范例8

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論