簡(jiǎn)單算法制定_第1頁(yè)
簡(jiǎn)單算法制定_第2頁(yè)
簡(jiǎn)單算法制定_第3頁(yè)
簡(jiǎn)單算法制定_第4頁(yè)
簡(jiǎn)單算法制定_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

補(bǔ)充簡(jiǎn)單算法設(shè)計(jì)程序的簡(jiǎn)單算法制定本章主要內(nèi)容1.結(jié)構(gòu)化程序的算法設(shè)計(jì)2.結(jié)構(gòu)化算法的性質(zhì)及結(jié)構(gòu)3.結(jié)構(gòu)化算法的描述方法4.結(jié)構(gòu)化算法流程圖思考如何編程實(shí)現(xiàn)以下各題【例1】要求從鍵盤(pán)輸入3個(gè)數(shù),找出其中最小的那個(gè)數(shù),將其輸出到屏幕。【例2】從鍵盤(pán)輸入兩個(gè)變量的值a、b,請(qǐng)按輸入值從小到大的順序?qū)⑦@兩個(gè)變量的值輸出到屏幕?!纠?】幾何級(jí)數(shù)求和:sum=1+2+3+4+5…+(n?1)+n。程序的簡(jiǎn)單算法制定算法:解決問(wèn)題的方法和要遵循的步驟。算法描述了程序要執(zhí)行的操作及操作的步驟順序。程序的功能是通過(guò)算法來(lái)描述的。C語(yǔ)言程序是一種結(jié)構(gòu)化的程序。結(jié)構(gòu)化程序:?jiǎn)栴}可以分解成相互獨(dú)立的幾個(gè)部分。每個(gè)獨(dú)立部分可以通過(guò)簡(jiǎn)單的語(yǔ)句或結(jié)構(gòu)來(lái)實(shí)現(xiàn)。分問(wèn)題解的過(guò)程就是算法設(shè)計(jì)的過(guò)程。重點(diǎn):掌握分析問(wèn)題、解決問(wèn)題的方法。

1.結(jié)構(gòu)化程序的算法設(shè)計(jì)【例1】要求從鍵盤(pán)輸入3個(gè)數(shù),找出其中最小的那個(gè)數(shù),將其輸出到屏幕。請(qǐng)給出解決這個(gè)問(wèn)題的算法。分析:程序?qū)τ趶逆I盤(pán)輸入的3個(gè)數(shù)必須用3個(gè)變量來(lái)保存,分別用a,b,c代表輸入的3個(gè)數(shù),另外,還需要一個(gè)變量min來(lái)保存最小的那個(gè)數(shù)。1.先比較a和b的值,把數(shù)值小的放入min中;2.再將min與c比較,又把數(shù)值小的放入min中。3.經(jīng)過(guò)兩次比較,min中已存放的是a,b,c3個(gè)數(shù)中最小的數(shù)。把min的值輸出就是所需結(jié)果。算法步驟:1.輸入3個(gè)數(shù),其值分別賦給3個(gè)變量a,b,c;2.把a(bǔ)與b中較小的那個(gè)數(shù)放入變量min中;3.把c與min中較小的那個(gè)數(shù)放入變量min中;4.輸出最后結(jié)果min的值。改進(jìn)上面的算法描述,將第2步和第3步的算法具體化。1.輸入三個(gè)數(shù),其值分別賦給三個(gè)變量a,b,c;2.比較a與b的值,如果a<b,則min=a;否則min=b;3.比較c與min的值,如果c<min,則min=c;4.輸出最后結(jié)果min的值。通過(guò)算法描述的步驟,可以很方便地用程序語(yǔ)言來(lái)實(shí)現(xiàn)。2.結(jié)構(gòu)化算法的性質(zhì)及結(jié)構(gòu)2.1結(jié)構(gòu)化算法性質(zhì)1.算法名稱(chēng)給算法命名,是為了方便算法的描述,在C語(yǔ)言中,算法的名字通常就是函數(shù)名。2.輸入算法應(yīng)有輸入的數(shù)據(jù)或初始條件。3.輸出算法通常會(huì)有一個(gè)或多個(gè)輸出,是對(duì)輸入數(shù)據(jù)加工后的結(jié)果。4.有效性算法的每一步都是可執(zhí)行的,可通過(guò)人工計(jì)算的。5.正確性算法的結(jié)果必須是正確的,可驗(yàn)證的。6.有限性任何算法必須在執(zhí)行有限條指令后結(jié)束。2.2結(jié)構(gòu)化算法的結(jié)構(gòu)在C語(yǔ)言算法的主要結(jié)構(gòu)有如下3種。1.順序結(jié)構(gòu)順序結(jié)構(gòu)的特點(diǎn):程序在執(zhí)行過(guò)程中是按語(yǔ)句的先后順序來(lái)執(zhí)行的,每一條語(yǔ)句都代表著一個(gè)功能,2.分支結(jié)構(gòu)分支結(jié)構(gòu)的特點(diǎn):程序在執(zhí)行過(guò)程中,會(huì)根據(jù)條件的不同有選擇的執(zhí)行不同的功能。3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)的特點(diǎn):程序在執(zhí)行過(guò)程中,在一定的時(shí)間段內(nèi)或一定的條件下,重復(fù)地執(zhí)行某個(gè)功能,直到時(shí)間已到或條件不再滿(mǎn)足。程序設(shè)計(jì)要解決的兩個(gè)主要問(wèn)題:

(1)按什么順序或步驟來(lái)執(zhí)行;(2)用什么語(yǔ)句來(lái)實(shí)現(xiàn)。算法設(shè)計(jì)是核心問(wèn)題。提示3.結(jié)構(gòu)化算法的描述方法常用的描述方法有自然語(yǔ)言、流程圖、偽代碼等。

3.1自然語(yǔ)言

用類(lèi)自然語(yǔ)言表示算法。如:漢語(yǔ)、英語(yǔ)或其他語(yǔ)言。

特點(diǎn):通俗易懂,簡(jiǎn)單明了。【例2】從鍵盤(pán)輸入兩個(gè)變量的值a、b,請(qǐng)按輸入值從小到大的順序?qū)⑦@兩個(gè)變量的值輸出到屏幕。請(qǐng)寫(xiě)出這個(gè)問(wèn)題的算法描述。算法描述:第1步:輸入變量a和b的值;第2步:比較a和b的值;如果a大于等于b,則先輸出a,再輸出b;否則,先輸出b,再輸出a;第3步:算法結(jié)束。【例3】幾何級(jí)數(shù)求和:sum=1+2+3+4+5…+(n?1)+n。請(qǐng)寫(xiě)出該問(wèn)題的算法。算法描述:第1步:給定一個(gè)大于0的正整數(shù)n的值;第2步:定義一個(gè)整型變量i,設(shè)其初始值1;第3步:定義整型變量sum,其初始值設(shè)置為0;第4步:如果i小于等于n,則轉(zhuǎn)第5步,否則執(zhí)行第8步;第5步:將sum的值加上i的值后,重新賦值給sum;第6步:將i的值加1,重新賦值給i;第7步:執(zhí)行第4步;第8步:輸出sum的值;第9步:算法結(jié)束。思考:①該問(wèn)題的其他描述。②用自然語(yǔ)言描述算法的缺陷。3.2流程圖流程圖是一種算法的形象表示。流程圖是由流程線(xiàn)和幾何圖形框連接而成的。算法流程圖的符號(hào)采用美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)規(guī)定的一些常用符號(hào):開(kāi)始框判斷框結(jié)束框執(zhí)行框數(shù)據(jù)框連接符流程線(xiàn)算法流程圖的3種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)1.順序結(jié)構(gòu)順序結(jié)構(gòu)是一種簡(jiǎn)單的線(xiàn)性結(jié)構(gòu),根據(jù)流程線(xiàn)所示的方向,按順序執(zhí)行各矩形框的指令。基本流程圖:注:指令A(yù)、指令B、指令C可以是一條或多條指令。執(zhí)行順序:A—B—C。2.分支結(jié)構(gòu)分支結(jié)構(gòu)要對(duì)給定的條件進(jìn)行判斷,看是否滿(mǎn)足給定的條件,根據(jù)條件結(jié)果的真假而分別執(zhí)行不同的執(zhí)行框?;玖鞒虉D有兩種:注:

(1)虛線(xiàn)框表示可將分支結(jié)構(gòu)看成一個(gè)矩形框。

(2)指令A(yù)、指令B可以是一條或多條指令,也可以是分支結(jié)構(gòu)。3.循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)是在條件為真的情況下,重復(fù)執(zhí)行某個(gè)執(zhí)行框中的內(nèi)容。基本流程圖有兩種:注:(1)虛線(xiàn)框表示可將循環(huán)結(jié)構(gòu)看成一個(gè)矩形框。

(2)指令A(yù)稱(chēng)為循環(huán)體,可以是一條或多條指令,也可以是其他分支或循環(huán)結(jié)構(gòu)。

(3)do_while結(jié)構(gòu)可以轉(zhuǎn)化成while結(jié)構(gòu)。(1)while循環(huán):(2)do_while循環(huán):循環(huán)結(jié)構(gòu)的特點(diǎn):①在循環(huán)體指令A(yù)中必須要有對(duì)條件的值進(jìn)行修改的語(yǔ)句,使得經(jīng)過(guò)有限次循環(huán)后,循環(huán)一定能結(jié)束。②while型循環(huán)中循環(huán)體可能一次都不執(zhí)行,而do_while型循環(huán)則至少執(zhí)行一次循環(huán)。③do_while型循環(huán)可以轉(zhuǎn)化成為while型循環(huán)結(jié)構(gòu),但while型循環(huán)不一定能轉(zhuǎn)化為do_while型循環(huán)。關(guān)于結(jié)構(gòu)化流程圖的規(guī)則:1.可分別將順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的基本流程圖看成是一個(gè)執(zhí)行框。2.任何兩個(gè)按順序的執(zhí)行框可以合并為一個(gè)執(zhí)行框。

反復(fù)運(yùn)用規(guī)則1和規(guī)則2可得到結(jié)構(gòu)化流程圖的最簡(jiǎn)形式:特別提示【例4】分析下面的流程圖,是否符合結(jié)構(gòu)化算法標(biāo)準(zhǔn)。運(yùn)用規(guī)則【例5】將例1的算法用流程圖表示,分析其是否符合結(jié)構(gòu)化的標(biāo)準(zhǔn)。從鍵盤(pán)輸入3個(gè)數(shù),找出其中最小的那個(gè)數(shù),將其輸出到屏幕。運(yùn)用規(guī)則

【例6】將例2所描述的問(wèn)題用算法流程圖來(lái)表示。從鍵盤(pán)輸入兩個(gè)整型變量a,b的值,按輸入值從小到大的順序輸出到屏幕。算法流程圖為:【例7】將例3所描述的問(wèn)題用算法流程圖來(lái)表示。計(jì)算幾何級(jí)數(shù)的和:sum=1+2+3+4+5+…+(n?1)+n。算法流程圖為:4.算法設(shè)計(jì)范例【例8】把從鍵盤(pán)輸入的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母輸出,若為小寫(xiě)字母或其他字符,則不作任何轉(zhuǎn)換直接輸出。分析:用字符變量ch來(lái)接收從鍵盤(pán)輸入的字符。大、小寫(xiě)字母的ASCII碼值相差32,大寫(xiě)字母A的值為65,而小寫(xiě)字母a的值為97。流程圖描述的算法:【例9】已知實(shí)數(shù)a,b,計(jì)算u的值:u=(r+s)2,并將計(jì)算結(jié)果輸出到屏幕。當(dāng)a<b時(shí),r=a2?b2,

。當(dāng)a≥b時(shí),r=b2?a2,

。分析:用a,b,r,s,u分

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論