




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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 從鍵盤(pán)輸入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ǔ)句是以所編寫(xiě)
4、的順序一句接一句地執(zhí)行,通常情況下,程序中的語(yǔ)句是以所編寫(xiě)的順序一句接一句地執(zhí)行, 這種執(zhí)行方法稱(chēng)為這種執(zhí)行方法稱(chēng)為“順序執(zhí)行順序執(zhí)行”。許多。許多C C語(yǔ)句能夠讓程序員指定語(yǔ)句能夠讓程序員指定 不按編寫(xiě)順序執(zhí)行下一條執(zhí)行語(yǔ)句,這種執(zhí)行方法稱(chēng)為不按編寫(xiě)順序執(zhí)行下一條執(zhí)行語(yǔ)句,這種執(zhí)行方法稱(chēng)為“控制轉(zhuǎn)控制轉(zhuǎn) 移移”。 oBohmBohm和和JacopiniJacopini的研究證實(shí),所有的程序都能夠只用三種控制結(jié)的研究證實(shí),所有的程序都能夠只用三種控制結(jié) 構(gòu)編寫(xiě),即構(gòu)編寫(xiě),即 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ǔ)句編寫(xiě)的順序一句一句地執(zhí)行動(dòng)以語(yǔ)句編寫(xiě)的順序一句一句地執(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)型和直到型兩類(lèi)。 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)單,在此未畫(huà)圖。) C語(yǔ)言程序設(shè)計(jì)2程序的簡(jiǎn)單算法指定16 2.3 算法制定范例 o例例2.
8、4 把從鍵盤(pán)輸入的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)把從鍵盤(pán)輸入的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě) 字母,輸出結(jié)果。字母,輸出結(jié)果。 o問(wèn)題:?jiǎn)栴}: o1、描述算法、描述算法 o2、根據(jù)算法編寫(xiě)、根據(jù)算法編寫(xiě)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ǔ)言描述):): 從鍵盤(pán)輸入實(shí)數(shù)從鍵盤(pán)輸入實(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 開(kāi)始 輸入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)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能門(mén)禁系統(tǒng)安裝合同
- 教師職稱(chēng)評(píng)定育人工作證明
- Tricyclohexylphosphine-Tricyclohexylphosphane-生命科學(xué)試劑-MCE
- 影視劇制作投資拍攝協(xié)議
- Actein-Standard-生命科學(xué)試劑-MCE
- 寓言故事愚公移山的教育意義深度解讀
- 美容美發(fā)產(chǎn)品使用效果免責(zé)承諾書(shū)
- 水電站落水孔清洗施工方案
- 蘇州玻璃鋼化糞池施工方案
- 2025年滁州c1貨運(yùn)上崗證模擬考試
- 《纏論的實(shí)戰(zhàn)技法》課件
- 新版標(biāo)準(zhǔn)化機(jī)電專(zhuān)業(yè)管理體系解讀課件
- 承包魚(yú)塘維修施工合同范例
- 耶魯綜合抽動(dòng)嚴(yán)重程度量表正式版
- 水利水電工程建設(shè)常見(jiàn)事故類(lèi)型及典型事故分析(標(biāo)準(zhǔn)版)
- 2024年濰坊工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)
- 《小學(xué)英語(yǔ)教學(xué)設(shè)計(jì)》課件全套 陳冬花 第1-10章 小學(xué)英語(yǔ)教學(xué)設(shè)計(jì)概述-小學(xué)英語(yǔ)課堂管理
- 電力線路常見(jiàn)故障培訓(xùn)
- 政府采購(gòu)項(xiàng)目采購(gòu)需求調(diào)查指引文本
- 酒店項(xiàng)目招商引資報(bào)告
- 2024年浙江省公務(wù)員錄用考試《行測(cè)》題(A類(lèi))
評(píng)論
0/150
提交評(píng)論