C語(yǔ)言經(jīng)典教程_譚浩強(qiáng)C語(yǔ)言_電子版 (2)_第1頁(yè)
C語(yǔ)言經(jīng)典教程_譚浩強(qiáng)C語(yǔ)言_電子版 (2)_第2頁(yè)
C語(yǔ)言經(jīng)典教程_譚浩強(qiáng)C語(yǔ)言_電子版 (2)_第3頁(yè)
C語(yǔ)言經(jīng)典教程_譚浩強(qiáng)C語(yǔ)言_電子版 (2)_第4頁(yè)
C語(yǔ)言經(jīng)典教程_譚浩強(qiáng)C語(yǔ)言_電子版 (2)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、TOC o 1-5 h z HYPERLINK l bookmark0 2程序的靈魂一算法1 HYPERLINK l bookmark2 算法的概念1 HYPERLINK l bookmark4 簡(jiǎn)單算法舉例1 HYPERLINK l bookmark6 算法的特性4 HYPERLINK l bookmark8 怎樣表示一個(gè)算法4 HYPERLINK l bookmark10 用自然語(yǔ)言表示算法4 HYPERLINK l bookmark12 用流程圖表示算法4 HYPERLINK l bookmark14 三種基本結(jié)構(gòu)和改進(jìn)的流程圖8 HYPERLINK l bookmark16 用N-S流

2、程圖表示算法9 HYPERLINK l bookmark18 用偽代碼表示算法10 HYPERLINK l bookmark20 用計(jì)算機(jī)語(yǔ)言表示算法11 HYPERLINK l bookmark22 結(jié)構(gòu)化程序設(shè)計(jì)方法112程序的靈魂一算法一個(gè)程序應(yīng)包JS:對(duì)數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(datastructure)。對(duì)操作的描述。即操作步驟,也就是算法(algorithm)。NikiklausWuth提出的公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序教材認(rèn)為:*程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語(yǔ)言工具和壞境這4個(gè)方面是一個(gè)程序涉及人員所應(yīng)具備的知識(shí)。本課程的目的是使同

3、學(xué)知道怎樣編寫一個(gè)C程序,進(jìn)行編寫程序的初步訓(xùn)練,因此,只介紹算法的初步知識(shí)。2.1算法的概念做任何事情都有一定的步驟。為解決一個(gè)問題而采取的方法和步驟,就稱為算法。計(jì)算機(jī)算法:計(jì)算機(jī)能夠執(zhí)行的算法。計(jì)算機(jī)算法可分為兩大類:數(shù)值運(yùn)算算法:求解數(shù)值;非數(shù)值運(yùn)算算法:事務(wù)管理領(lǐng)域。2.2簡(jiǎn)單算法舉例【例2.1求1X2X3X4X5。第頁(yè)靳潤(rùn)昭C語(yǔ)言教程講義2001年2月17口第 頁(yè)最原始方法:步驟1:先求1X2,得到結(jié)果2。步驟2:將步驟1得到的乘枳2乘以3,得到結(jié)果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。這樣的算法雖然正確,但太繁。改進(jìn)的算法:S1:使t=lS2:使1=

4、2S3:使txi,乘積仍然放在在變量t中,可表示為txitS4:使1的值+1,即i+1-iS5:如果iW5,返回重新執(zhí)行步驟S3以及其后的S4和S5:否則,算法結(jié)束。如果計(jì)算100!只需將S5:若iW5改成iWlOO即可。如果該求1X3X5X7X9X11,算法也只需做很少的改動(dòng):SI:l-*tS2:3-*iS3:txi-*tS4:i+2tS5:若iWll,返回S3,否則,結(jié)束。該算法不僅正確,而且是計(jì)算機(jī)較好的算法,因?yàn)橛?jì)算機(jī)是高速運(yùn)算的自動(dòng)機(jī)器,實(shí)現(xiàn)循壞輕而易舉。思考:若將S5寫成:S5:若1V11,返回S3;否則,結(jié)束?!纠?.2】有50個(gè)學(xué)生,要求將他們之中成績(jī)?cè)?0分以上者打印出來。如

5、果,n表示學(xué)生學(xué)號(hào),山表示第個(gè)學(xué)生學(xué)號(hào);g表示學(xué)生成績(jī),旨表示第個(gè)學(xué)生成績(jī);則算法可表示如下:SI:l-*iS2:如果gi80,則打印m和g”否則不打印S3:i+liS4:若iW50,返回S2,否則,結(jié)束?!纠?.3】判定20002500年中的每一年是否閏年,將結(jié)果輸出。潤(rùn)年的條件:1)能被4整除,但不能被100整除的年份:2)能被100整除,又能被400整除的年份:設(shè)y為被檢測(cè)的年份,則算法可表示如下:Sl:2000-yS2:若y不能被4整除,貝IJ輸出y“不是閏年”,然后轉(zhuǎn)到S6S3:若y能被4整除,不能被100整除,則輸出y“是閏年”,然后轉(zhuǎn)到S6S4:若y能被100整除,又能被400整

6、除,輸出y“是閏年”否則輸出y“不是閏年”,然后轉(zhuǎn)到S6S5:輸出y“不是閏年”。S6:y+l-vS7:當(dāng)yW2500時(shí),返回S2繼續(xù)執(zhí)行,否則,結(jié)束。111111-1I111-卜【例2.4】求23499100。算法可表示如下:SI:sigh=lS2:sum=lS3:deno=2S4:sigh=(l)xsighS5:term=sighx(l/deno)S6:term=sum+termS7:deno=deno+1S&若denolOO,返回S4:否則,結(jié)束。【例2.5】對(duì)一個(gè)人于或等于3的正整數(shù),判斷它是不是一個(gè)素?cái)?shù)。算法可表示如下:S1:輸入n的值S2:i=2S3:n被1除,得余數(shù)rS4:如果尸

7、0,表示n能被1整除,則打印n“不是素?cái)?shù)”,算法結(jié)束;否則執(zhí)行S5S5:i+l-*iS6:如果in-1,返回S3:否則打印n“是素?cái)?shù)”:然后算法結(jié)束。改進(jìn):S6:如果iW亦,返回S3:否則打印n“是素?cái)?shù)”;然后算法結(jié)束。2.3算法的特性有窮性:一個(gè)算法應(yīng)包含有限的操作步驟而不能是無限的。確定性:算法中每一個(gè)步驟應(yīng)當(dāng)是確定的,而不能應(yīng)當(dāng)是含糊的、模棱兩可的。有零個(gè)或多個(gè)輸入。有一個(gè)或多個(gè)輸出。有效性:算法中每一個(gè)步驟應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。對(duì)于程序設(shè)計(jì)人員,必須會(huì)設(shè)計(jì)算法,并根據(jù)算法寫出程序。2.4怎樣表示一個(gè)算法2.4.1用自然語(yǔ)言表示算法除了很簡(jiǎn)單的問題,一般不用自然語(yǔ)言表示算法

8、。2.4.2用流程圖表示算法流程圖表示算法,直觀形象,易于理解。起Lt框輸入輸出框判斷框遊框舷線連摻點(diǎn)【例2.6將例2.1求5!的算用流程圖表示?!纠?.7將例2.2的算用流程圖表示?!纠?.8將例2.3判定閏年的算用流程圖表示。11111【例2.9】將例2.4求23499100的算用流程圖表示。一個(gè)流程圖包拾:表示相應(yīng)操作的框;帶箭頭的流程線;框內(nèi)外必要的文字說明。243三種基本結(jié)構(gòu)和改進(jìn)的流程圖1.順序結(jié)構(gòu):2.選擇結(jié)構(gòu):3.循壞結(jié)構(gòu)三種基本結(jié)構(gòu)的共同特點(diǎn):只有一個(gè)入口;只有一個(gè)出口;結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到:結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。2.4.4用NS流程圖表示算法1973年美國(guó)學(xué)者提出了一種新型流程圖:N-S流程圖。順序結(jié)構(gòu):選擇結(jié)構(gòu):循壞結(jié)構(gòu):當(dāng)P1成立AA直到Pl成立IF打E卩ni,gji+i直到i50245用偽代碼表示算法偽代碼使用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)來描述算法。246用計(jì)算機(jī)語(yǔ)言表示算法我們的任務(wù)是用計(jì)算機(jī)解題就是用計(jì)算機(jī)實(shí)現(xiàn)算法;用計(jì)算機(jī)語(yǔ)言表示算法必須嚴(yán)格遵循所用語(yǔ)言的語(yǔ)法規(guī)則?!纠?.20求1X2X3X4X5用C語(yǔ)言表示。mainQmti,t;t=l;1=2;while(i=5)i=i+l;pnntfC%&:t);【例2.21】求級(jí)數(shù)的值。mainQ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論