算法程序的靈魂課件_第1頁(yè)
算法程序的靈魂課件_第2頁(yè)
算法程序的靈魂課件_第3頁(yè)
算法程序的靈魂課件_第4頁(yè)
算法程序的靈魂課件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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、算法程序的靈魂算法程序的靈魂一個(gè)程序主要包括以下兩方面的信息:一個(gè)程序主要包括以下兩方面的信息:(1) 對(duì)數(shù)據(jù)的描述。對(duì)數(shù)據(jù)的描述。在程序中要指定用到在程序中要指定用到哪哪些數(shù)據(jù)以及些數(shù)據(jù)以及這些數(shù)據(jù)的類型和數(shù)據(jù)的組織形式這些數(shù)據(jù)的類型和數(shù)據(jù)的組織形式u這就是這就是數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)(data structure)(2) 對(duì)操作的描述。對(duì)操作的描述。即要求計(jì)算機(jī)進(jìn)行操作的步驟即要求計(jì)算機(jī)進(jìn)行操作的步驟u也就是也就是算法算法(algorithm)著名計(jì)算機(jī)科學(xué)家沃思著名計(jì)算機(jī)科學(xué)家沃思(Nikiklaus Wirth)提出一個(gè)提出一個(gè)公式:公式: 算法算法 + 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) = 程序程序算法算

2、法、數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)方法程序設(shè)計(jì)方法和和語(yǔ)言工具語(yǔ)言工具是一個(gè)程序是一個(gè)程序設(shè)計(jì)人員應(yīng)具備的知識(shí)設(shè)計(jì)人員應(yīng)具備的知識(shí)算法程序的靈魂2.1 什么是算法什么是算法2.2 簡(jiǎn)單的算法舉例簡(jiǎn)單的算法舉例2.3 算法的特性算法的特性2.4 怎樣表示一個(gè)算法怎樣表示一個(gè)算法2.5 結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法算法程序的靈魂自學(xué)自學(xué)算法程序的靈魂例例2.1 求求12345可以用最原始的方法進(jìn)行:可以用最原始的方法進(jìn)行:u步驟步驟1:先求:先求1 2,得到結(jié)果,得到結(jié)果2。u步驟步驟2:將步驟:將步驟1得到的乘積得到的乘積2再乘以再乘以3,得到結(jié)果,得到結(jié)果6。u步驟步驟3:將:將6再乘以再

3、乘以4,得,得24。u步驟步驟4:將:將24再乘以再乘以5,得,得120。這就是最后的結(jié)果。這就是最后的結(jié)果。改進(jìn)的算法:改進(jìn)的算法:u設(shè)變量設(shè)變量p為被乘數(shù)為被乘數(shù)u變量變量i為乘數(shù)為乘數(shù)u用循環(huán)算法求結(jié)果用循環(huán)算法求結(jié)果算法程序的靈魂S1:1pS2:2iS3:p*ipS4:i+1 iS5:如果:如果i不大于不大于5,返回重新執(zhí)行,返回重新執(zhí)行S3;否則,算法結(jié);否則,算法結(jié)束束最后得到最后得到p的值就是的值就是 5!的值的值若是若是1000呢?呢?算法程序的靈魂 例例2.3 判定判定20002500年中的每一年是否閏年,并將年中的每一年是否閏年,并將結(jié)果輸出。結(jié)果輸出。閏年的條件:閏年的條

4、件: (1)能被能被4整除,但不能被整除,但不能被100整除的年份都是閏年,如整除的年份都是閏年,如2008、2012、2048年年 (2)能被能被400整除的年份是閏年,如整除的年份是閏年,如2000年年u不符合這兩個(gè)條件的年份不是閏年不符合這兩個(gè)條件的年份不是閏年u例如例如2009、2100年年算法程序的靈魂設(shè)設(shè)year為被檢測(cè)的年份。算法表示如下:為被檢測(cè)的年份。算法表示如下:uS1:2000yearuS2:若:若year不能被不能被4整除,則輸出整除,則輸出year 的值和的值和“不是不是閏年閏年”。然后轉(zhuǎn)到。然后轉(zhuǎn)到S6uS3:若:若year能被能被4整除,不能被整除,不能被100整

5、除,則輸出整除,則輸出year的值和的值和“是閏年是閏年”。然后轉(zhuǎn)到。然后轉(zhuǎn)到S6uS4:若:若year能被能被400整除,整除,則則輸出輸出year的值和的值和“是閏是閏年年” ,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6uS5: 其他情況其他情況輸出輸出year的值和的值和“不是閏年不是閏年”uS6:year+1yearuS7:當(dāng):當(dāng)year2500時(shí),轉(zhuǎn)時(shí),轉(zhuǎn)S2,否則停止,否則停止算法程序的靈魂year不能不能被被4整除整除非閏年非閏年year被被4整整除,但不能除,但不能被被100整除整除閏年閏年year被被100整除,又能整除,又能被被400整除整除閏年閏年其他其他非閏年非閏年逐漸縮小判逐漸縮小判斷的

6、范圍斷的范圍算法程序的靈魂 例例2.5 給出一個(gè)大于或等于給出一個(gè)大于或等于3的正整數(shù),判斷它是不是一個(gè)素的正整數(shù),判斷它是不是一個(gè)素?cái)?shù)。數(shù)。所謂素?cái)?shù)所謂素?cái)?shù)(prime),是指除了,是指除了1和該數(shù)本身之外,不能被其和該數(shù)本身之外,不能被其他任何整數(shù)整除的數(shù)他任何整數(shù)整除的數(shù)例如,例如,13是素?cái)?shù),因?yàn)樗荒鼙皇撬財(cái)?shù),因?yàn)樗荒鼙?,3,4,12整除。整除。算法程序的靈魂判斷一個(gè)數(shù)判斷一個(gè)數(shù)n(n3)是否素?cái)?shù):將是否素?cái)?shù):將n作為被除數(shù),將作為被除數(shù),將2到到(n-1)各個(gè)整數(shù)先后作為除數(shù),如果都不能被整除,則各個(gè)整數(shù)先后作為除數(shù),如果都不能被整除,則n為為素?cái)?shù)素?cái)?shù)S1:輸入:輸入n的值的值

7、S2:i=2 (i作為除數(shù))作為除數(shù))S3:n被被i除,得余數(shù)除,得余數(shù)rS4:如果:如果r=0,表示,表示n能被能被i整除,則輸出整除,則輸出n“不是素?cái)?shù)不是素?cái)?shù)”,算法結(jié)束;否則執(zhí)行,算法結(jié)束;否則執(zhí)行S5S5:i+1iS6:如果:如果in-1,返回,返回S3;否則輸出;否則輸出n “是素?cái)?shù)是素?cái)?shù)”,然后,然后結(jié)束。結(jié)束??筛臑榭筛臑閚/2n算法程序的靈魂自學(xué)自學(xué)算法程序的靈魂常用的方法有:常用的方法有:u自然語(yǔ)言自然語(yǔ)言u(píng)傳統(tǒng)流程圖傳統(tǒng)流程圖u結(jié)構(gòu)化流程圖結(jié)構(gòu)化流程圖u偽代碼偽代碼u算法程序的靈魂2.4.1 用自然語(yǔ)言表示算法用自然語(yǔ)言表示算法2.4.2 用流程圖表示算法用流程圖表示算法

8、2.4.3 三種基本結(jié)構(gòu)和改進(jìn)的流程圖三種基本結(jié)構(gòu)和改進(jìn)的流程圖2.4.4 用用N-S流程圖表示算法流程圖表示算法2.4.5 用偽代碼表示算法用偽代碼表示算法2.4.6 用計(jì)算機(jī)語(yǔ)言表示算法用計(jì)算機(jī)語(yǔ)言表示算法算法程序的靈魂自學(xué)自學(xué)算法程序的靈魂起止框起止框輸入輸出框輸入輸出框處理框處理框判斷框判斷框流程線流程線連接點(diǎn)連接點(diǎn)注釋框注釋框算法程序的靈魂 例例2.6 將例將例2.1的算的算法用流程圖表示。法用流程圖表示。 求求12345如果需要將最后結(jié)果如果需要將最后結(jié)果輸出輸出:1t輸出輸出ti5開(kāi)始開(kāi)始2it*iti+1i結(jié)束結(jié)束NY算法程序的靈魂 例例2.8 例例2.3判定閏年的算法用流程圖

9、表判定閏年的算法用流程圖表示。判定示。判定20002500年中的每一年是否年中的每一年是否閏年,將結(jié)果輸出。閏年,將結(jié)果輸出。算法程序的靈魂NYN開(kāi)始開(kāi)始2000yearyear不能不能被被4整除整除year是閏年是閏年year不能不能被被100整除整除year+1yearyear2500結(jié)束結(jié)束Yyear不能不能被被400整除整除year不是閏年不是閏年year是閏年是閏年year不是閏年不是閏年YNYN算法程序的靈魂 例例2.10 例例2.5判斷素?cái)?shù)的算法用流程圖表示。對(duì)一個(gè)大判斷素?cái)?shù)的算法用流程圖表示。對(duì)一個(gè)大于或等于于或等于3的正整數(shù),判斷它是不是一個(gè)素?cái)?shù)。的正整數(shù),判斷它是不是一個(gè)素

10、數(shù)。算法程序的靈魂NY輸出輸出n是素?cái)?shù)是素?cái)?shù)結(jié)束結(jié)束開(kāi)始開(kāi)始輸入輸入n2in%irr=0i+1iin輸出輸出n是素?cái)?shù)是素?cái)?shù)YN算法程序的靈魂(1) 順序結(jié)構(gòu)順序結(jié)構(gòu)AB算法程序的靈魂(2) 選擇結(jié)構(gòu)選擇結(jié)構(gòu)ABYpNAYpN算法程序的靈魂(3) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)AYp1NYx51t輸出輸出t2it*iti+1i算法程序的靈魂例例2.13 將例將例2.3判定閏年的算法用判定閏年的算法用N-S圖表示圖表示直到直到y(tǒng)ear25002000yearyear+1year否否是是year%4為為0否否是是輸出輸出year非閏年非閏年year%100不為不為0year%400為為0是是否否輸出輸出year非閏年非閏年輸出輸出year閏年閏年輸出輸出year

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論