版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C程序設計講師:徐紅波Email:第一頁,共三十三頁。第2章 程序的靈魂-算法一個程序包括以下兩個方面的內容:(1)對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結構。(2)對操作的描述。即操作步驟,也就是算法。數(shù)據(jù)是操作的對象,操作的目的是對數(shù)據(jù)進行加工處理,以得到期望的結果。作為程序設計人員,必須認真考慮和設計數(shù)據(jù)結構和操作步驟(即算法)。著名計算機科學家沃思提出一個公式:數(shù)據(jù)結構+算法=程序。實際上,一個程序除了以上兩個主要要素之外,還應當采用結構化程序設計方法進行程序設計,并且用某一種計算機語言表示。因此,算法、數(shù)據(jù)結構、程序設計方法和語言工具4個方面是一個程序設計人員
2、所應具備的知識。第二頁,共三十三頁。2.1 算法的概念廣義地說,為解決一個問題而采取的方法和步驟,就稱為算法(algorithm)。例如,描述太極拳動作的圖解,就是太極拳的算法。一首歌曲的樂譜,也可以稱為該歌曲的算法,因為它指定了演奏該歌曲的每一個步驟,按照它的規(guī)定就能演奏出預定的曲子。對同一個問題,可以有不同的解題方法和步驟。計算機算法可分為兩大類別:數(shù)值運算算法非數(shù)值運算算法第三頁,共三十三頁。2.2 簡單算法舉例例2.1求12345算法1:步驟1:先求1*2,得到結果2。步驟2:將步驟1得到的乘積2再乘以3,得到結果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。第四
3、頁,共三十三頁。算法2:S1:使p=1S2:使i=2S3:使p*i,乘積仍放在變量p中,可表示為p*ipS4:使i的值加1,即i+1iS5:如果i不大于5,返回重新執(zhí)行步驟S3以及其后的步驟S4和S5;否則,算法結束。最后得p的值就是5!的值。第五頁,共三十三頁。例2.2有50個學生,要求將他們之中成績在80分以上的學號和成績輸出ni代表第i個學生學號。gi代表第i個學生成績,算法如下:S1:1iS2:如果gi80,則輸出ni和gi;否則不輸出S3:i+1iS4:如果i50,返回S2,繼續(xù)執(zhí)行;否則,算法結束。第六頁,共三十三頁。例2.3判定2000-2500年中的每一年是否是閏年閏年的條件是
4、:(1)能被4整除,但不能被100整除的年份是閏年,如1996年、2004年;(2)能被400整除的年份是閏年,如1600年、2000年。設y為被檢測的年份??刹捎靡韵虏襟E:S1:2000yS2:若y不能被4整除,則輸出 “y不是閏年”。然后轉到S6S3:若y能被4整除,不能被100整除,則輸出 “y是閏年”。然后轉到S6S4:若y能被400整除,輸出 “y是閏年”,然后轉到S6S5:輸出 “y不是閏年”S6:y+1yS7:當y2500時,轉S2繼續(xù)執(zhí)行,否則算法停止。第七頁,共三十三頁。例2.4求1-1/2+1/3-1/4+1/99-1/100算法如下:S1:sign=1S2:sum=1S3
5、:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若deno100返回S4;否則算法結束。第八頁,共三十三頁。例2.5對一個大于或等于3的正整數(shù),判斷它是不是一個素數(shù)判斷一個數(shù)n(n3)是否素數(shù)的方法是將n作為被除數(shù),將2到n-1各個整數(shù)先后作為除數(shù),如果都不能被整除,則n為素數(shù)。算法如下:S1:輸入n的值S2:i=2(i作為除數(shù))S3:n被i除,得余數(shù)rS4:如果r=0,表示n能被i整除,則輸出 “n不是素數(shù)”,算法結束;否則執(zhí)行S5S5:i+1iS6:如果in-1,返回S3;否則輸出 “
6、n是素數(shù)”,然后結束。第九頁,共三十三頁。2.3 算法的特性(1)有窮性。一個算法應包含有限的操作步驟,而不能是無限的。(2)確定性。算法中的每一個步驟都應當是確定的,而不應當是含糊的、模棱兩可的。(3)有零個或多個輸入。所謂輸入是指在執(zhí)行算法時需要從外界取得必要的信息。(4)有一個或多個輸出。算法的目的是為了求解,“解”就是輸出。(5)有效性。算法中的每一個步驟都應當能有效地執(zhí)行,并得到確定的結果。第十頁,共三十三頁。2.4 怎樣表示一個算法為了表示一個算法,可以用不同的方法。常用的方法有:自然語言傳統(tǒng)流程圖N-S流程圖 偽代碼PAD圖等。第十一頁,共三十三頁。2.4.2 用流程圖表示算法第
7、十二頁,共三十三頁。例2.6將例2.1求5!的算法用流程圖表示第十三頁,共三十三頁。例2.7將例2.2的算用流程圖表示。將50名學生中成績在80分以上者的學號和成績輸出 第十四頁,共三十三頁。例2.8將例2.3判定閏年的算法用流程圖表示第十五頁,共三十三頁。例2.9將例2.4的算法用流程圖表示。即求1-1/2+1/3-1/4+1/99-1/100第十六頁,共三十三頁。例2.10將例2.5判斷素數(shù)的算法用流程圖表示第十七頁,共三十三頁。2.4.3 三種基本結構(1)順序結構第十八頁,共三十三頁。(2)選擇結構第十九頁,共三十三頁。(3)循環(huán)結構 當型循環(huán) 直到型循環(huán)第二十頁,共三十三頁。2.4.
8、4 用N-S流程圖表示算法N-S流程圖用以下的流程圖符號:(1)順序結構:A和B兩個框組成一個順序結構。第二十一頁,共三十三頁。(2)選擇結構:當條件p成立時執(zhí)行操作A ,條件p不成立則執(zhí)行操作B。第二十二頁,共三十三頁。(3)循環(huán)結構:當型循環(huán)結構下,圖符表示先判斷后執(zhí)行,當條件p成立時反復執(zhí)行操作A ,直到條件p不成立為止。直到型循環(huán)結構下,圖符表示先執(zhí)行后判斷,當條件p不成立時反復執(zhí)行A操作,直到p條件成立為止。第二十三頁,共三十三頁。例2.11將例2.1的求5!算法用N-S圖表示第二十四頁,共三十三頁。例2.12將例2.2的算法用N-S圖表示。將50名學生中成績高于80分的學號和成績打
9、印出來第二十五頁,共三十三頁。例2.13將例2.3判定閏年的算法用N-S圖表示 第二十六頁,共三十三頁。例2.14將例2.4的算法用N-S圖表示。求1-1/2+1/3+1/99-1/100第二十七頁,共三十三頁。例2.15將例2.5判斷素數(shù)的算法用N-S流程圖表示第二十八頁,共三十三頁。2.4.6 用計算機語言表示算法例2.16將例2.11表示的算法(求5!)用C語言表示#include main()int i, t;t=1; i=2; while(i=5)t=t*i;i=i+1; printf(“%d”, t); 第二十九頁,共三十三頁。例2.17求例2.14表示的算法(求級數(shù)的值)用C語言表示#include main()int sign=1;float deno=2.0, sum=1.0, term;while(deno80,則輸出ni和gi。(2)能被400整除的年份是閏年,如1600年、2000年。S2:若y不能被4整除,則輸出 “y不是閏年”。S4:sign=(-1)*sign。S7:d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025嶺南文化創(chuàng)意產(chǎn)業(yè)園項目啟動儀式籌辦服務合同協(xié)議書
- 2025含破碎錘挖掘機買賣合同書
- 2025咖啡粉批發(fā)合同
- 2025金屬制品委托加工合同
- 2023三年級英語上冊 Unit 5 Let's eat The first period第一課時說課稿 人教PEP
- 5 應對自然災害(說課稿)2023-2024學年統(tǒng)編版道德與法治六年級下冊
- 保母阿姨合同范例
- 人用工合同范例
- 上海檢測合同范例
- 金屬防水材料施工方案
- 2025年廣西教育出版社有限公司招聘筆試參考題庫含答案解析
- 中醫(yī)膏方臨床應用與制備工藝規(guī)范 DB32/T 4870-2024
- JJG(交通) 208-2024 車貨外廓尺寸動態(tài)現(xiàn)場檢測設備
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調研考試(一模)英語試卷(含答案)
- 2025年信息系統(tǒng)集成服務公司組織架構和業(yè)務流程
- 西藏自治區(qū)拉薩市城關區(qū)多校2024-2025學年六年級上學期期中英語試題
- 胸外科講課全套
- 2023年海南省公務員錄用考試《行測》真題卷及答案解析
- 公安法制培訓
- 中醫(yī)診斷學八綱辨證課件
- 淺談如何有效提高小學數(shù)學教學質量課件
評論
0/150
提交評論