




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)第一章第一章 揭開計(jì)算機(jī)解決問題的揭開計(jì)算機(jī)解決問題的神秘面紗神秘面紗算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)1.1 計(jì)算機(jī)解決問題的過程從一個(gè)生產(chǎn)方案問題了解用計(jì)算機(jī)解決問題的步驟:P6具體問題分析問題設(shè)計(jì)算法編寫程序調(diào)試程序得到答案掌握用自然語言表達(dá)算法。(P8實(shí)踐與練習(xí))算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)1、具體問題:、具體問題:華南太陽能設(shè)備廠在計(jì)劃期內(nèi)擬生產(chǎn)甲、乙、丙三種適銷產(chǎn)品,每件銷售收分別為4萬元、3萬元、2萬元。按工藝規(guī)定,甲、乙、丙三種產(chǎn)品都需要在A、B、C、D四種不同的設(shè)備上加工,其加工所需要的時(shí)間見下表。已知A、B、C、D四種設(shè)備在計(jì)劃期內(nèi)有效使用臺(tái)時(shí)數(shù)分別為
2、12、8、16、12。如何安排生產(chǎn)可使收入最大? 設(shè)備產(chǎn)品ABCD甲2140乙2204丙1100探究的問題探究過程找出已知和未知已知甲乙丙銷售收入,ABCD四種設(shè)備有效使用臺(tái)時(shí)數(shù),甲乙丙加工的臺(tái)時(shí)數(shù),未知的是甲乙丙的產(chǎn)量及總銷售額。明確已知和未知之間關(guān)系甲乙丙加工的臺(tái)時(shí)數(shù)不能超過ABCD有效使用臺(tái)時(shí)數(shù)。人工求解問題甲乙丙的產(chǎn)量及總銷售額。寫出解題的算法窮舉2、分析問題:、分析問題:算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)2x+2y+z12X+2y+z 84x 164y 120 x 6; 0 y 6; 0 z 120 x 8; 0 y 4; 0 z 80 x 40 y 30 x 40 y 30 z 8算法與
3、程序設(shè)計(jì)算法與程序設(shè)計(jì)3、設(shè)計(jì)算法:、設(shè)計(jì)算法:x=0 x4y=0y3z=0z82*x+2*y+z=12x+2*y+z4y=0y3z=0z8f_maxf(x,y,z)f_max=f(x,y,z)x_max=xy_max=yz_max=zz=z+1y=y+1x=x+1NYYYYNN結(jié)束輸出結(jié)果算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)4、編寫程序、編寫程序Dim x As Integer, y As Integer, z As IntegerDim x_max As Integer, y_max As Integer, z_max As IntegerDim f(4, 3, 12) As SingleDim
4、f_max As SingleFor x = 0 To 4For y = 0 To 3For z = 0 To 12If (2 * x + 2 * y + z = 8) And (x + 2 * y + z = 8) Thenf(x, y, z) = 4 * x + 3 * y + 2 * zElsef(x, y, z) = 0End IfNext zNext yNext x算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)f_max = 0For x = 0 To 4For y = 0 To 3For z = 0 To 8If f_max f(x, y, z) Thenf_max = f(x, y, z)x_ma
5、x = xy_max = yz_max = zEnd IfNext zNext yNext xPrint “當(dāng)x=”; x_max; “,y=”; y_max; “,z=”; z_max; “時(shí),Print “f(x,y,z)的最大值=; f_max算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)5、調(diào)試程序、得到結(jié)果、調(diào)試程序、得到結(jié)果1)、新建工程;2)、在窗體添加按鈕控件;3)、給按鈕添加單擊事件過程;4)、在單擊事件過程內(nèi)輸入編寫好的程序;5)、運(yùn)行程序調(diào)試結(jié)果。6、在計(jì)算機(jī)上執(zhí)行該指令序列5、通過編輯、編譯和連接產(chǎn)生計(jì)算機(jī)能夠識(shí)別的指令序列4、選用一種編程語言根據(jù)算法編寫程序4、驗(yàn)證計(jì)算結(jié)果3、生成解題
6、算法3、用筆、紙和算盤、計(jì)算器等工具進(jìn)行計(jì)算2、尋找解題的途徑和方法2、尋找解題的途徑和方法1、理解和分析所要解決的問題1、理解和分析所面臨的問題計(jì)算機(jī)解題步驟計(jì)算機(jī)解題步驟人工解題步驟人工解題步驟相同點(diǎn):無論何種解題方式,在解決某一實(shí)際問題時(shí),都應(yīng)該正確的理解問題的題意,從看似復(fù)雜的問題中整理出一個(gè)頭緒,然后通過算法(即解決問題的一個(gè)一個(gè)步驟)描述出某一問題的解決過程,進(jìn)行一定量的計(jì)算,最后都必須驗(yàn)證計(jì)算結(jié)果。 不同點(diǎn):當(dāng)計(jì)算量較大時(shí),人工解題就有點(diǎn)力不從心了,而計(jì)算機(jī)每秒上億次的計(jì)算速度卻不在話下,并且只要算法正確,編程語句無誤的話,使用計(jì)算機(jī)編寫的解題程序可以反復(fù)使用。例如:sum=1+
7、2+3+4+5+(n-1)+n這樣的問題。 算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)1.2 算法和算法的描述1、算法的概念、算法的概念算法是在有限步驟內(nèi)求解某一問題所使用的一組定義明確的規(guī)則。即,用計(jì)算機(jī)求解某一問題的方法,是能被機(jī)械地執(zhí)行的動(dòng)作或指令的有窮集合。算法的特征:1)、有0或多個(gè)輸入。解題算法中可以沒有數(shù)據(jù)輸入,也可以同時(shí)輸入多個(gè)需 要算法處理的數(shù)據(jù)。 2)、確定性。解題方法中的任何一個(gè)操作步驟都是清晰無誤的,不會(huì)使人產(chǎn)生 歧義或者誤解。 3)、有窮性。任何一種提出的解題方法都是在有限的操作步驟內(nèi)可以完成的, 哪怕是失敗的解題方法。 4)、有1個(gè)或多個(gè)輸出。一個(gè)算法執(zhí)行結(jié)束之后必須有數(shù)據(jù)處理結(jié)
8、果輸出,哪怕 是輸出錯(cuò)誤的數(shù)據(jù)結(jié)果,沒有輸出的算法使毫無意義的。 5)、能行性。解題方法中的任何一個(gè)操作步驟在現(xiàn)有計(jì)算機(jī)軟硬件條件下和邏 輯思維中都能夠?qū)嵤?shí)現(xiàn)。 算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)輾轉(zhuǎn)相除法 又名歐幾里德算法(Euclidean algorithm)是求兩個(gè)正整數(shù)之最大公約數(shù)的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出現(xiàn)于歐幾里德的幾何原本(第VII卷,命題i和ii)中,而在中國則可以追溯至東漢出現(xiàn)的九章算術(shù)。它并不需要把二數(shù)作質(zhì)因子分解。 1. a b,令r為所得余數(shù)(0rb),若 r = 0,b 即為最大公約數(shù);算法結(jié)束 。 2. 互換:置 ab,br,并返回
9、第一步。 例如:求112和64的最大公約數(shù).算法如下: (1).112除以64,余數(shù)為_; (2)_除以_余數(shù)為_; (3)_除以_余數(shù)為_. 答:112和64的最大公約數(shù)為_.兩數(shù)的最大公約數(shù)乘以其最小公倍數(shù)=兩數(shù)相乘例如:求112和64的最小公倍數(shù) (1).利用輾轉(zhuǎn)相除法求得它們的最大公約數(shù)為_; (2).利用表達(dá)式求得最小公倍數(shù): 答: 112和64的最小公倍數(shù)為_.練習(xí):求164和64的最大公約數(shù)求256和24的最大公約數(shù)練習(xí):求164和64的最小公倍數(shù)求256和24的最小公倍數(shù)算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)2、算法的描述、算法的描述表示算法的語言有自然語言、流程圖、偽代碼等。1)、用自
10、然語言描述算法;2)、用流程圖描述算法:掌握流程圖的基本圖形及其功能。3)、用偽代碼描述算法。注意對比三種算法描述方式的優(yōu)劣。1).輸入m和n的值;2).r=m除以n的余數(shù);3).如果r=0,則輸出n值; 否則令m=n,n=r返回第2步;4).結(jié)束.開始輸入正整數(shù)m和nr=m除以n的余數(shù)r=0m=n, n=r輸出n的值結(jié)束是否輸入m和n值r m Mod ndo while r0m=nn=rr=m mod nloop輸出n值算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)優(yōu)點(diǎn)缺點(diǎn)自然語言不需專門訓(xùn)練,通俗易懂P10流程圖描述清晰簡潔,容易表達(dá)選擇結(jié)構(gòu);利于不同環(huán)境的程序設(shè)計(jì).P11無法被
11、計(jì)算機(jī)直接接受并進(jìn)行操作偽代碼書寫方便,格式緊湊,易于理解,便于向計(jì)算機(jī)程序設(shè)計(jì)語言過渡.P12種類繁多,語句不容易規(guī)范.P12三種算法描述方式的優(yōu)劣三種算法描述方式的優(yōu)劣算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)使用自然語言描述算法的方法雖然比較容易掌握,但是存在著很大的缺陷。例如,當(dāng)算法中含有多分支或循環(huán)操作時(shí)很難表述清楚。另外,使用自然語言描述算法還很容易造成歧義(稱之為二義性),譬如有這樣一句話“武松打死老虎”,我們既可以理解為“武松/打死老虎”,又可以理解為“武松/打/死老虎”。自然語言中的語氣和停頓不同,就可能使他人對相同的一句話產(chǎn)生不同的理解。又如“你輸他贏”這句話,使用不同的語氣說,可以產(chǎn)生
12、3種截然不同的意思,同學(xué)們不妨試試看。 無論是使用自然語言還是使用流程圖描述算法,僅僅是表述了編程者解決問題的一種思路,都無法被計(jì)算機(jī)直接接受并進(jìn)行操作。 偽代碼通常采用自然語言、數(shù)學(xué)公式和符號(hào)來描述算法的操作步驟,同時(shí)采用計(jì)算機(jī)高級(jí)語言(如C、Pascal、VB、C+、Java等)的控制結(jié)構(gòu)來描述算法步驟的執(zhí)行順序。 算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)在運(yùn)用計(jì)算機(jī)程序解決問題的過程中,算法設(shè)計(jì)有著舉足輕重的地位和作用,算法是程序設(shè)計(jì)的核心,是程序設(shè)計(jì)的靈魂.算法的好壞,直接影響著程序的通用性和有效性,影響著問題解決的效率.程序的編制依賴于算法的設(shè)計(jì)。程序的效率主要取決于算法的效率。算法與程序設(shè)計(jì)算
13、法與程序設(shè)計(jì)1.3、程序與程序設(shè)計(jì)語言、程序與程序設(shè)計(jì)語言1)、程序是一組機(jī)器操作的指令或語句的序列,是算法的一種描述。2)、程序的七個(gè)特征:P153)、程序的基本結(jié)構(gòu):P16順序結(jié)構(gòu):各語句依次按照順序執(zhí)行。選擇結(jié)構(gòu):通過檢驗(yàn)條件是否成立來決定做還是不做的控件結(jié)構(gòu)。循環(huán)結(jié)構(gòu):在一定條件下需要重復(fù)執(zhí)行的控件結(jié)構(gòu)。任何復(fù)雜的算法都可以用順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu)組合而成的程序表示。算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)S1S2SnCS1S2CS1順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)4)、程序設(shè)計(jì):即是編寫程序的過程。一個(gè)高質(zhì)量的程序,應(yīng)具備以下條件:(1)、建立正確的靈堂模型
14、和確定有效的計(jì)算方法;(2)、運(yùn)行結(jié)果必須正確,且在精度和其他各方面均滿足要求;(3)、程序本身具有良好的結(jié)構(gòu),邏輯清楚,易讀易懂。(4)、程序運(yùn)行時(shí)間盡可能短,同時(shí)盡可能合理地使用內(nèi)存;(5)、便于檢查、修正、移植和維護(hù)。5)、程序設(shè)計(jì)語言的產(chǎn)生與發(fā)展(P18)(1)、機(jī)器語言:由“0”和“1”組成的二進(jìn)制代碼,是能夠被計(jì)算機(jī)直接接受和 執(zhí)行的計(jì)算機(jī)語言。 優(yōu)缺點(diǎn):(2)、匯編語言:采用類似英語縮寫略詞且?guī)в兄浶缘姆?hào)形式代替二進(jìn)制 機(jī)器代碼的計(jì)算機(jī)語言。是符號(hào)化了的機(jī)器語言。用能反映 指令功能的助記符表達(dá)的計(jì)算機(jī)語言。 優(yōu)缺點(diǎn):(3)、高級(jí)語言:相對于匯編語言而言,它并不是特指某一種具體的語言,而是包括了很多編程語言,如VB、C、C+,VC、Java、Pascal等。算法與程序設(shè)計(jì)算法與程序設(shè)計(jì)語言種類優(yōu)勢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨史國史國情知識(shí)競賽題庫及答案(共190題)
- 溶血三項(xiàng)在新生兒溶血檢測中的靈敏度及特異度分析
- 學(xué)院食材采購 投標(biāo)方案(技術(shù)方案)
- 電商平臺(tái)具體業(yè)務(wù)
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第一節(jié) 中藥方劑基本常識(shí)
- 電子商務(wù)安全交易規(guī)范手冊
- 公路建設(shè)項(xiàng)目工程可行性研究報(bào)告編制辦法
- 系統(tǒng)可行性分析包括哪些內(nèi)容
- 農(nóng)產(chǎn)品加工與綜合利用技術(shù)手冊
- 品牌建設(shè)與營銷策略實(shí)施方案
- 合金污水管施工方案
- 統(tǒng)編歷史七年級(jí)下冊(2024版)第8課-北宋的政治【課件】j
- 高等數(shù)學(xué)(慕課版)教案 教學(xué)設(shè)計(jì)-1.3 極限的運(yùn)算法則;1.4 極限存在準(zhǔn)則與兩個(gè)重要極限
- 2025年淮北職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 2025屆高三化學(xué)一輪復(fù)習(xí) 化學(xué)工藝流程題說題 課件
- 第四周主題班會(huì)教案38婦女節(jié)《“致敬了不起的她”》
- 2025中國福州外輪代理限公司招聘15人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 班主任培訓(xùn)講座
- 醫(yī)院化驗(yàn)室管理制度
- 新課標(biāo)(水平三)體育與健康《籃球》大單元教學(xué)計(jì)劃及配套教案(18課時(shí))
- (2024)湖南省公務(wù)員考試《行測》真題卷及答案解析
評(píng)論
0/150
提交評(píng)論