C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定課件_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定課件_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定課件_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定課件_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定課件_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定1 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì) 第二章 程序的簡(jiǎn)單算法制定 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定2 o2.1 結(jié)構(gòu)化程序的算法制定 o2.2 結(jié)構(gòu)化程序的算法描述 o2.3 算法制定的范例 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定3 2.1 結(jié)構(gòu)化程序的算法制定 o利用計(jì)算機(jī)處理問(wèn)題簡(jiǎn)述 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定4 2.1 結(jié)構(gòu)化程序的算法制定結(jié)構(gòu)化程序的算法制定 o例2.1 從鍵盤輸入3個(gè)數(shù),找出其中最小的那個(gè)數(shù)。 o分析:1、需變量的個(gè)數(shù)-3個(gè) o 2、先比較a,b的值,把小的存在min中。 o 3、再用min與c比較,把數(shù)值小的存放在min中。 o 如

2、果 ab 則 min=a,否則min=b; o 如果c0 -4ac0(雙實(shí)根)(雙實(shí)根) X1=X1= X2= X2= 如果如果 b b2 2 -4ac=0 -4ac=0(單實(shí)根)(單實(shí)根) X1=X2=X1=X2= 如果如果 b b2 2 -4ac0 -4ac=60) printf(“Passed!”); else printf(“Failed”); 算法可采用自然語(yǔ)言、流程圖、N-S圖、PAD圖、偽代碼等 方法來(lái)描述。 示 例:根據(jù)學(xué)生成績(jī)輸出評(píng)定結(jié)果。 一、算法(algorithm) C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定9 二、算法與流程圖二、算法與流程圖傳統(tǒng)流程圖 o特點(diǎn): o 直觀形象

3、; o 使用流線。 o缺點(diǎn): o 占面積大,使用流 線任意轉(zhuǎn)移,易出現(xiàn) “亂麻”現(xiàn)象,造成 編程與閱讀程序困難。 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定10 二、算法與流程圖二、算法與流程圖N-S結(jié)構(gòu)化流程圖 o 77年美學(xué)者I.Nassi和B.Scheiderman提出。 o特點(diǎn) o 取消流線 o 不允許流程任意轉(zhuǎn)移,只能從上而下順序執(zhí)行 o 規(guī)定三種基本結(jié)構(gòu)的流程圖單元,由這些基本結(jié)構(gòu)象搭積木似的 組成各種算法(結(jié)構(gòu)化設(shè)計(jì))。 o優(yōu)點(diǎn) o 算法清晰,流程不會(huì)無(wú)規(guī)律亂轉(zhuǎn)移。 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定11 二、算法與流程圖二、算法與流程圖三種基本結(jié)構(gòu) o通常情況下,程序中的語(yǔ)句是以所編寫

4、的順序一句接一句地執(zhí)行,通常情況下,程序中的語(yǔ)句是以所編寫的順序一句接一句地執(zhí)行, 這種執(zhí)行方法稱為這種執(zhí)行方法稱為“順序執(zhí)行順序執(zhí)行”。許多。許多C C語(yǔ)句能夠讓程序員指定語(yǔ)句能夠讓程序員指定 不按編寫順序執(zhí)行下一條執(zhí)行語(yǔ)句,這種執(zhí)行方法稱為不按編寫順序執(zhí)行下一條執(zhí)行語(yǔ)句,這種執(zhí)行方法稱為“控制轉(zhuǎn)控制轉(zhuǎn) 移移”。 oBohmBohm和和JacopiniJacopini的研究證實(shí),所有的程序都能夠只用三種控制結(jié)的研究證實(shí),所有的程序都能夠只用三種控制結(jié) 構(gòu)編寫,即構(gòu)編寫,即 o 順序結(jié)構(gòu)順序結(jié)構(gòu) o 選擇結(jié)構(gòu)(選擇結(jié)構(gòu)(selection structureselection structur

5、e) o 循環(huán)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)(repetition structurerepetition structure) o 順序結(jié)構(gòu)是順序結(jié)構(gòu)是C C語(yǔ)言的基本結(jié)構(gòu),除非指示轉(zhuǎn)移,否則計(jì)算機(jī)自語(yǔ)言的基本結(jié)構(gòu),除非指示轉(zhuǎn)移,否則計(jì)算機(jī)自 動(dòng)以語(yǔ)句編寫的順序一句一句地執(zhí)行動(dòng)以語(yǔ)句編寫的順序一句一句地執(zhí)行C C語(yǔ)句。語(yǔ)句。 o任何任何C C語(yǔ)言程序都是由七種控制結(jié)構(gòu)(順序結(jié)構(gòu)、三種選擇結(jié)構(gòu)語(yǔ)言程序都是由七種控制結(jié)構(gòu)(順序結(jié)構(gòu)、三種選擇結(jié)構(gòu) 和三種循環(huán)結(jié)構(gòu))構(gòu)成的。和三種循環(huán)結(jié)構(gòu))構(gòu)成的。 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定12 二、算法與流程圖二、算法與流程圖三種基本結(jié)構(gòu) o順序結(jié)構(gòu) o A塊、B塊順序執(zhí)

6、行(每塊代表一個(gè)或一組操作) C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定13 二、算法與流程圖二、算法與流程圖三種基本結(jié)構(gòu) o選擇結(jié)構(gòu) o 條件p成立時(shí)執(zhí)行a塊(否則 執(zhí)行b塊) uif 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 條件為真時(shí)執(zhí) 行某個(gè)指定的操作,條件為 假時(shí)跳過(guò)該操作(單路選擇) uififelseelse選擇結(jié)構(gòu)選擇結(jié)構(gòu) 條件為 真時(shí)執(zhí)行某個(gè)指定的操作,為 假時(shí)執(zhí)行另一個(gè)指定的操作 (雙路選擇) uswitchswitch選擇結(jié)構(gòu)選擇結(jié)構(gòu) 根據(jù)表達(dá) 式的值執(zhí)行眾多不同操作中 的某個(gè)指定的操作(多路選 擇) C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定14 二、算法與流程圖二、算法與流程圖三種基本結(jié)構(gòu) o循環(huán)結(jié)構(gòu) o

7、分當(dāng)型和直到型兩類。 o 當(dāng)型 先判斷,只要條 件為真就反復(fù)執(zhí)行A塊,為 假則結(jié)束循環(huán)。 o 直到型 先執(zhí)行A塊,再 判斷條件是否為真,為真 則繼續(xù)執(zhí)行循環(huán)體,為假 則結(jié)束循環(huán)。 oC語(yǔ)言提供了三種循環(huán)結(jié)構(gòu), 即while循環(huán)結(jié)構(gòu), dowhile循環(huán)結(jié)構(gòu)和for 循環(huán)結(jié)構(gòu)。 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定15 2.2.3 PAD圖 PAD(Problem Analysis Diagram)另一種被廣泛使用的 一種算法的圖形表示法。 PAD圖可以看成是二維的,它能展現(xiàn)算法的層次結(jié) 構(gòu)。(順序結(jié)構(gòu)很簡(jiǎn)單,在此未畫圖。) C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定16 2.3 算法制定范例 o例例2.

8、4 把從鍵盤輸入的大寫字母轉(zhuǎn)換成小寫把從鍵盤輸入的大寫字母轉(zhuǎn)換成小寫 字母,輸出結(jié)果。字母,輸出結(jié)果。 o問(wèn)題:?jiǎn)栴}: o1、描述算法、描述算法 o2、根據(jù)算法編寫、根據(jù)算法編寫C程序程序 o3、運(yùn)行檢查程序是否正確。、運(yùn)行檢查程序是否正確。 o o 演示演示ex202 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定17 2.3 算法制定范例 o例2.5 已知實(shí)數(shù)a和b,計(jì)算u的值:u=(r+s)2。 其中,當(dāng)ab時(shí),r=a2-b2,s=a/b;當(dāng)ab時(shí), r=b2-a2,s=a/b+4。 o算法(算法(自然語(yǔ)言描述自然語(yǔ)言描述):): 從鍵盤輸入實(shí)數(shù)從鍵盤輸入實(shí)數(shù)a和和b。 如果如果ab,則,則r=a2

9、-b2,s=a/b;否則,否則,r=b2-a2,s=a/b+4。 計(jì)算計(jì)算u的值:的值: u=(r+s)2。 輸出輸出u的值。的值。 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定18 開始 輸入a,b ab T F r=a*a-b*b s=a/b r=b*b-a*a s=a/b+4 結(jié)束 u=(r+s)*(r+s) 輸出u的值 流程圖 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定19 輸入實(shí)數(shù)a,b ab FT r=a*a-b*b s=a/b r=b*b-a*a s=a/b+4 計(jì)算的值:u=(r+s)*(r+s) 輸出u的值 N-S圖 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定20 輸入實(shí)數(shù)a,b ab r=a*a-b

10、*b s=a/b r=b*b-a*a s=a/b+4 計(jì)算u=(r+s)*(r+s) 輸出u的值 PAD圖 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定21 o/*例例2.5*/ o#include omain() o ofloat a,b,r,s,u; oprintf(請(qǐng)輸入變量請(qǐng)輸入變量a、b的值:的值:); oscanf(%f %f, oif(ab) o or=a*a-b*b; os=a/b; o oelse o or=b*b-a*a; os=a/b+4; o ou=(r+s)*(r+s); oprintf(所計(jì)算的所計(jì)算的u的值為:的值為:%f,u); o C語(yǔ)言描 述 C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定22 o小結(jié):小結(jié): o 本章主要介紹了程序算法的制定方法:自然語(yǔ)言、本章主要介紹了程序算法的制定方法:自然語(yǔ)言、 流程圖、流程圖、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論