算法與程序框圖_第1頁(yè)
算法與程序框圖_第2頁(yè)
算法與程序框圖_第3頁(yè)
算法與程序框圖_第4頁(yè)
算法與程序框圖_第5頁(yè)
已閱讀5頁(yè),還剩71頁(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、. . .問題的提出問題的提出 有一個(gè)農(nóng)夫帶一條狼狗、一只羊和有一個(gè)農(nóng)夫帶一條狼狗、一只羊和一筐白菜過河。如果沒有農(nóng)夫看管,則一筐白菜過河。如果沒有農(nóng)夫看管,則狼狗要吃羊,羊要吃白菜。但是船很小,狼狗要吃羊,羊要吃白菜。但是船很小,只夠農(nóng)夫帶一樣?xùn)|西過河。問農(nóng)夫該如只夠農(nóng)夫帶一樣?xùn)|西過河。問農(nóng)夫該如何解此難題?何解此難題? 方法和過程方法和過程:1、帶羊到對(duì)岸,返回;帶羊到對(duì)岸,返回;2、帶菜到對(duì)岸,并把羊帶回;帶菜到對(duì)岸,并把羊帶回;3、帶狼狗到對(duì)岸,返回;帶狼狗到對(duì)岸,返回;4、帶羊到對(duì)岸。帶羊到對(duì)岸。. .問題問題1請(qǐng)你寫出解二元一次方程組的詳細(xì)求解請(qǐng)你寫出解二元一次方程組的詳細(xì)求解過程

2、過程. 35(1)2494(2)xyxy. .35(1)2494(2)xyxy解方程解方程第一步第一步, ,由(由(1)得)得35(3)xy第二步第二步, ,將(將(3)代入()代入(2)得)得2(35)494(4)yy第三步第三步, , 解(解(4)得)得12(5)y 第四步第四步, , 將(將(5)代入()代入(3)得)得23x 第五步第五步, , 得到方程組的解得得到方程組的解得2312xy. .35(1)2494(2)xyxy解方程解方程第一步第一步, ,(1)2(2)224(3)y 得: 第二步第二步, ,第三步第三步, ,第四步第四步, ,第五步第五步, , 得到方程組的解得得到方

3、程組的解得2312xy(3)12y 解得:(1)4(2)246(4)x得:(4)23x 解得:. .廣義地說:為了解決某一問題而采取的方廣義地說:為了解決某一問題而采取的方法和步驟,就稱之為算法。法和步驟,就稱之為算法。在數(shù)學(xué)中,按照一定規(guī)則解決某一類問在數(shù)學(xué)中,按照一定規(guī)則解決某一類問題的題的明確明確和和有限有限的步驟,的步驟,稱為算法?,F(xiàn)在,算法通常可以編成計(jì)算機(jī)程序,現(xiàn)在,算法通??梢跃幊捎?jì)算機(jī)程序,讓計(jì)算機(jī)執(zhí)行并解決問題。讓計(jì)算機(jī)執(zhí)行并解決問題。算法的概念算法的概念:沒有軟件的支持,計(jì)算機(jī)只是一堆廢鐵而已;沒有軟件的支持,計(jì)算機(jī)只是一堆廢鐵而已;. .算法的特征算法的特征 一.確定性:

4、每一步必須有確切的定義。 二.有效性:原則上必須能夠精確的運(yùn)行。 三.有窮性:一個(gè)算法必須保證執(zhí)行有限步 后結(jié)束算法的優(yōu)缺點(diǎn)算法的優(yōu)缺點(diǎn) 一.缺點(diǎn):算法一般是機(jī)械的,有時(shí)需要進(jìn)行大量重復(fù)的計(jì)算. 二.優(yōu)點(diǎn):算法是一種通法,只要按照步驟去做,總能得到結(jié)果. . 廣播操圖解是廣播操的算法;廣播操圖解是廣播操的算法; 菜譜是做菜的算法;菜譜是做菜的算法; 歌譜是一首歌曲的算法;歌譜是一首歌曲的算法; 空調(diào)說明書是空調(diào)使用的算法等空調(diào)說明書是空調(diào)使用的算法等我們身邊的算法我們身邊的算法. .算法學(xué)的發(fā)展 隨著科學(xué)技術(shù)的日新月異,算法學(xué)也得到了前所未有的發(fā)展,現(xiàn)在已經(jīng)發(fā)展到了各個(gè)領(lǐng)域.有遺傳算法遺傳算法

5、, ,排序算法排序算法, ,加密算法加密算法,蟻群算法蟻群算法等,與生物學(xué),計(jì)算機(jī)科學(xué)等有著很廣泛的聯(lián)系,尤其是在現(xiàn)在的航空航天中,更是有著更廣泛的應(yīng)用. 很多復(fù)雜的運(yùn)算都是借助計(jì)算機(jī)和算法來完成的,在高端科學(xué)技術(shù)中有著很重要的地位. .科學(xué)家王小云主導(dǎo)破解兩科學(xué)家王小云主導(dǎo)破解兩大密碼算法獲百萬(wàn)大獎(jiǎng)大密碼算法獲百萬(wàn)大獎(jiǎng) . . 楊振寧教授楊振寧教授為獲得為獲得“求求是杰出科學(xué)是杰出科學(xué)家獎(jiǎng)家獎(jiǎng)”的山的山東大學(xué)特聘東大學(xué)特聘教授王小云教授王小云頒發(fā)了獲獎(jiǎng)?lì)C發(fā)了獲獎(jiǎng)證書和獎(jiǎng)金證書和獎(jiǎng)金100100萬(wàn)元人民萬(wàn)元人民幣,表彰其幣,表彰其密碼學(xué)領(lǐng)域密碼學(xué)領(lǐng)域的杰出成就。的杰出成就。 . .例例1.(1

6、).(1)設(shè)計(jì)一個(gè)算法判斷設(shè)計(jì)一個(gè)算法判斷7 7是否為質(zhì)數(shù)是否為質(zhì)數(shù). .第一步第一步, 用用2除除7,得到余數(shù)得到余數(shù)1.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以2不能整除不能整除7.第二步第二步, 用用3除除7,得到余數(shù)得到余數(shù)1.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以3不能整除不能整除7.第三步第三步, 用用4除除7,得到余數(shù)得到余數(shù)3.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以4不能整除不能整除7.第四步第四步, 用用5除除7,得到余數(shù)得到余數(shù)2.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以5不能整除不能整除7.第五步第五步, 用用6除除7,得到余數(shù)得到余數(shù)1.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所

7、以6不能整除不能整除7.因此,因此,7是質(zhì)數(shù)是質(zhì)數(shù). .例例1.(2).(2)設(shè)計(jì)一個(gè)算法判斷設(shè)計(jì)一個(gè)算法判斷3535是否為質(zhì)是否為質(zhì)數(shù)數(shù). .第一步第一步, 用用2除除35,得到余數(shù)得到余數(shù)1.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以2不能整除不能整除35.第二步第二步, 用用3除除35,得到余數(shù)得到余數(shù)2.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以3不能整除不能整除35.第三步第三步, 用用4除除35,得到余數(shù)得到余數(shù)3.因?yàn)橛鄶?shù)不為因?yàn)橛鄶?shù)不為0, 所以所以4不能整除不能整除7.第四步第四步, 用用5除除35,得到余數(shù)得到余數(shù)0.因?yàn)橛鄶?shù)為因?yàn)橛鄶?shù)為0, 所以所以5能整除能整除35.因此,因此

8、,35不是質(zhì)數(shù)不是質(zhì)數(shù). .任意給定一個(gè)大于任意給定一個(gè)大于1 1的整數(shù)的整數(shù)n, ,試設(shè)計(jì)一個(gè)程序或步驟試設(shè)計(jì)一個(gè)程序或步驟對(duì)對(duì)n是否為質(zhì)數(shù)做出判定是否為質(zhì)數(shù)做出判定. .第一步:判斷第一步:判斷n是否等于是否等于2.2.若若n=2=2,則,則n是質(zhì)數(shù);是質(zhì)數(shù);若若n2 2,則執(zhí)行第二步,則執(zhí)行第二步. .第二步第二步: :依次從依次從2 2(n1)檢驗(yàn)是不是)檢驗(yàn)是不是n的因的因數(shù),即整除數(shù),即整除n的數(shù)的數(shù), ,若有這樣的數(shù),則若有這樣的數(shù),則n不是質(zhì)不是質(zhì)數(shù);若沒有這樣的數(shù),則數(shù);若沒有這樣的數(shù),則n是質(zhì)數(shù)是質(zhì)數(shù). .這是判斷一個(gè)大于這是判斷一個(gè)大于1 1的整數(shù)的整數(shù)n是否為質(zhì)數(shù)的是否

9、為質(zhì)數(shù)的最基本算法最基本算法. .用語(yǔ)言描述一個(gè)算法用語(yǔ)言描述一個(gè)算法,最便捷的方式就是按最便捷的方式就是按解決問題的步驟進(jìn)行描述解決問題的步驟進(jìn)行描述.每一步做一件事每一步做一件事情情. .例例2. .用二分法設(shè)計(jì)一個(gè)求方程用二分法設(shè)計(jì)一個(gè)求方程220 x 的近似根的算法的近似根的算法. .(0)x . . 對(duì)于區(qū)間對(duì)于區(qū)間a,b 上連續(xù)不斷、且上連續(xù)不斷、且f(a)f(b)0的函數(shù)的函數(shù)y=f(x),通過不斷地通過不斷地把函數(shù)把函數(shù)f(x)的零點(diǎn)所在的區(qū)間一分的零點(diǎn)所在的區(qū)間一分為二,使區(qū)間的兩個(gè)端點(diǎn)逐步逼近為二,使區(qū)間的兩個(gè)端點(diǎn)逐步逼近零點(diǎn),進(jìn)而得到零點(diǎn)近似值的方法零點(diǎn),進(jìn)而得到零點(diǎn)近似

10、值的方法叫做叫做二分法二分法.22(0)yxx. .第四步第四步, 若若f(a) f(m) 7時(shí)時(shí)). .解解:y與與x之間的函數(shù)關(guān)系為之間的函數(shù)關(guān)系為:1.2 ,1.94.9xyx(當(dāng)當(dāng)0 x7時(shí)時(shí))(當(dāng)當(dāng)x7時(shí)時(shí))求該函數(shù)值的算法分析求該函數(shù)值的算法分析:第一步第一步:輸入每月用水量輸入每月用水量x;第二步第二步:判斷判斷x是否不超過是否不超過7.若是若是,則則y=1.2x;若否若否,則則y=1.9x-4.9.第三步第三步:輸出應(yīng)交納的水費(fèi)輸出應(yīng)交納的水費(fèi)y. .計(jì)算機(jī)解決任何問題都要依計(jì)算機(jī)解決任何問題都要依賴于算法賴于算法.只有將解決問題的過程只有將解決問題的過程分解為分解為若干個(gè)明確

11、的步驟若干個(gè)明確的步驟,即即算法算法,并用并用計(jì)算機(jī)能夠接受的計(jì)算機(jī)能夠接受的“語(yǔ)言語(yǔ)言”準(zhǔn)確地描述出來準(zhǔn)確地描述出來,計(jì)算機(jī)才能夠解計(jì)算機(jī)才能夠解決問題決問題. .1.1.2 程序框圖程序框圖 . .問題提出問題提出1.1.算法的含義是什么?算法的含義是什么? 在數(shù)學(xué)中,按照一定規(guī)則解決某一在數(shù)學(xué)中,按照一定規(guī)則解決某一類問題的明確和有限的步驟稱為算法類問題的明確和有限的步驟稱為算法. . 2.2.算法是由一系列明確和有限的計(jì)算步算法是由一系列明確和有限的計(jì)算步驟組成的,我們可以用自然語(yǔ)言表述一驟組成的,我們可以用自然語(yǔ)言表述一個(gè)算法,但往往過程復(fù)雜,缺乏簡(jiǎn)潔性,個(gè)算法,但往往過程復(fù)雜,缺乏

12、簡(jiǎn)潔性,因此,我們有必要探究使算法表達(dá)得更因此,我們有必要探究使算法表達(dá)得更加直觀、準(zhǔn)確的方法,這個(gè)想法可以通加直觀、準(zhǔn)確的方法,這個(gè)想法可以通過程序框圖來實(shí)現(xiàn)過程序框圖來實(shí)現(xiàn). . .知識(shí)探究(一):算法的程序框圖知識(shí)探究(一):算法的程序框圖思考思考1:1:“判斷整數(shù)判斷整數(shù)n n(n n2 2)是否為質(zhì)數(shù))是否為質(zhì)數(shù)”的的算法步驟如何?算法步驟如何?第一步第一步,給定一個(gè)大于,給定一個(gè)大于2 2的整數(shù)的整數(shù)n n; 第二步第二步,令,令i=2i=2; 第三步第三步,用,用i i除除n n,得到余數(shù),得到余數(shù)r r; 第四步第四步,判斷,判斷“r=0”r=0”是否成立是否成立. .若是,則

13、若是,則n n 不是質(zhì)數(shù),結(jié)束算法;否則,將不是質(zhì)數(shù),結(jié)束算法;否則,將i i 的值增加的值增加1 1,仍用,仍用i i表示;表示; 第五步第五步,判斷,判斷“i i(n-1)”(n-1)”是否成立,若是,是否成立,若是, 則則n n是質(zhì)數(shù),結(jié)束算法;否則,返回是質(zhì)數(shù),結(jié)束算法;否則,返回 第三步第三步. . . .開始開始輸入輸入ni=2求求n除以除以i的余數(shù)的余數(shù)ri的值增加的值增加1仍用仍用i表示表示in或或r=0?n不是質(zhì)數(shù)不是質(zhì)數(shù)結(jié)束結(jié)束是是否否是是n是質(zhì)數(shù)是質(zhì)數(shù)否否r=0? i=i+1 思考思考2 :為了使算法為了使算法的程序或步的程序或步驟表達(dá)得更驟表達(dá)得更為直觀為直觀,我們我們

14、更經(jīng)常地用更經(jīng)常地用圖形方式圖形方式來來表示它表示它. .程序框圖程序框圖又稱又稱流程圖流程圖,是一種用規(guī)定的圖形、是一種用規(guī)定的圖形、指向線及文字說明來準(zhǔn)確、直觀地表示算法的指向線及文字說明來準(zhǔn)確、直觀地表示算法的圖形圖形.通常通常,程序框圖由程序框圖由程序框程序框和和流程線流程線組成組成.一個(gè)或幾個(gè)程序框的組合一個(gè)或幾個(gè)程序框的組合表示算法中的表示算法中的一個(gè)步驟一個(gè)步驟;流程線流程線是是方向箭頭方向箭頭,按照算法進(jìn)行的順序?qū)⒊绦虬凑账惴ㄟM(jìn)行的順序?qū)⒊绦蚩蜻B接起來框連接起來. .思考思考3:基本的程序框和它們各自表示的功能?基本的程序框和它們各自表示的功能?圖形符號(hào)圖形符號(hào)名稱名稱功能功能

15、終端框終端框(起止框起止框)表示一個(gè)算法的起始表示一個(gè)算法的起始和結(jié)束和結(jié)束輸入、輸輸入、輸出框出框表示一個(gè)算法輸入和表示一個(gè)算法輸入和輸出的信息輸出的信息處理框處理框(執(zhí)行框執(zhí)行框)判斷某一條件是否成立判斷某一條件是否成立,成立成立時(shí)在出口處標(biāo)明時(shí)在出口處標(biāo)明“是是”或或“Y”;不;不”成立時(shí)標(biāo)明成立時(shí)標(biāo)明“否否”或或“N”.判斷框判斷框賦值、計(jì)算賦值、計(jì)算流程線流程線連接程序框連接程序框連接點(diǎn)連接點(diǎn)連接程序框圖的兩部分連接程序框圖的兩部分. .開始開始輸入輸入ni=2求求n除以除以i的余數(shù)的余數(shù)ri的值增加的值增加1仍用仍用i表示表示in或或r=0?n不是質(zhì)數(shù)不是質(zhì)數(shù)結(jié)束結(jié)束是是否否是是n

16、是質(zhì)數(shù)是質(zhì)數(shù)否否r=0?設(shè)設(shè)n是一個(gè)大是一個(gè)大于于2的整數(shù)的整數(shù).一般用一般用i=i+1表示表示. i=i+1說明說明:i表示從表示從2(n-1)的所有正整數(shù)的所有正整數(shù),用以用以判斷例判斷例1步驟步驟2是否終是否終止止,i是一個(gè)計(jì)數(shù)變量是一個(gè)計(jì)數(shù)變量,有了這個(gè)變量有了這個(gè)變量,算法算法才能依次執(zhí)行才能依次執(zhí)行.逐步逐步考察從考察從2(n-1)的所的所有正整數(shù)中是否有有正整數(shù)中是否有n的因數(shù)存在的因數(shù)存在. .思考思考4:通過上述算法的兩種不同表達(dá)方式的比:通過上述算法的兩種不同表達(dá)方式的比較較,你覺得用程序框圖來表達(dá)算法有哪些特點(diǎn)你覺得用程序框圖來表達(dá)算法有哪些特點(diǎn)?用程序框圖表示的算法更加

17、簡(jiǎn)練用程序框圖表示的算法更加簡(jiǎn)練,直觀直觀,流向清楚流向清楚. .開始開始輸入輸入ni=2求求n除以除以i的余數(shù)的余數(shù)ri=i+1in或或r=0?n不是質(zhì)數(shù)不是質(zhì)數(shù)結(jié)束結(jié)束是是否否是是n是質(zhì)數(shù)是質(zhì)數(shù)否否r=0?順序結(jié)構(gòu)順序結(jié)構(gòu)思考思考:5:用程序框圖來表示:用程序框圖來表示算法,有幾種不同的基本邏算法,有幾種不同的基本邏輯結(jié)構(gòu)?輯結(jié)構(gòu)?條件結(jié)構(gòu)條件結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu). .知識(shí)探究(二):算法的順序結(jié)構(gòu)知識(shí)探究(二):算法的順序結(jié)構(gòu)思考思考1:1:任何一個(gè)算法各步驟之間都有明確的任何一個(gè)算法各步驟之間都有明確的順序性,在算法的程序框圖中,由若干個(gè)依順序性,在算法的程序框圖中,由若干個(gè)依次執(zhí)行的

18、步驟組成的邏輯結(jié)構(gòu),稱為次執(zhí)行的步驟組成的邏輯結(jié)構(gòu),稱為順序結(jié)順序結(jié)構(gòu)構(gòu),用程序框圖可以表示為:,用程序框圖可以表示為:步驟步驟n步驟步驟n+1在順序結(jié)構(gòu)中可能在順序結(jié)構(gòu)中可能會(huì)用到哪幾種程序會(huì)用到哪幾種程序框和流程線?框和流程線??. .思考思考2:2:若一個(gè)三角形的三條邊長(zhǎng)分別為若一個(gè)三角形的三條邊長(zhǎng)分別為a a,b b,c c,令,令 ,則三角形的面積,則三角形的面積 . .你能利用這個(gè)公式你能利用這個(gè)公式設(shè)計(jì)一個(gè)計(jì)算三角形面積的算法步驟嗎?設(shè)計(jì)一個(gè)計(jì)算三角形面積的算法步驟嗎?2abcp+=()()()Sp papb pc=-()()()Sp papb pc=-第一步,輸入三角形三條邊的

19、邊長(zhǎng)第一步,輸入三角形三條邊的邊長(zhǎng) a a,b b,c.c. 第二步,計(jì)算第二步,計(jì)算 . . 2abcp+=第三步,計(jì)算第三步,計(jì)算 . .()()()Sp pa pb pc=-第四步,輸出第四步,輸出S. S. . .思考思考3:3:上述算法的程序框圖如何表示?上述算法的程序框圖如何表示?開始開始結(jié)束結(jié)束輸出輸出S輸入輸入a,b,c2abcp+=()()()Sp pa pb pc=-. . 例例1 1 一個(gè)籠子里裝有雞和兔共一個(gè)籠子里裝有雞和兔共m m只,且只,且雞和兔共雞和兔共n n只腳,設(shè)計(jì)一個(gè)計(jì)算雞和兔各有多只腳,設(shè)計(jì)一個(gè)計(jì)算雞和兔各有多少只的算法,并畫出程序框圖表示少只的算法,并畫

20、出程序框圖表示. .順序結(jié)構(gòu)順序結(jié)構(gòu)-理論遷移理論遷移算法分析:算法分析: 第一步,輸入第一步,輸入m m,n.n.第二步,計(jì)算雞的只數(shù)第二步,計(jì)算雞的只數(shù) . .42mnx-=第三步,計(jì)算兔的只數(shù)第三步,計(jì)算兔的只數(shù)y=m-x.y=m-x.第四步,輸出第四步,輸出x x,y.y. .開始開始結(jié)束結(jié)束輸出輸出x,y輸入輸入m,n42mnx-=y y= m-xm-x程序框圖:程序框圖: . . 例例2 2 已知下圖是已知下圖是“求一個(gè)正奇數(shù)的平方求一個(gè)正奇數(shù)的平方加加5 5的值的值”的程序框圖,若輸出的數(shù)是的程序框圖,若輸出的數(shù)是3030,求,求輸入的數(shù)輸入的數(shù)n n的值的值. .開始開始結(jié)束結(jié)

21、束輸入正整數(shù)輸入正整數(shù)n輸出輸出yy=x2+5x=2n- -1. .練習(xí):練習(xí):1.就(就(1)、()、(2)兩種邏輯結(jié)構(gòu),說出各自的算法功能)兩種邏輯結(jié)構(gòu),說出各自的算法功能開始輸入a,b結(jié)束sum=a+b輸出sum開始輸入a,b22baddc 輸出c結(jié)束(1)(2)答案:答案:(1)求直角三角形斜邊長(zhǎng);)求直角三角形斜邊長(zhǎng);(2)求兩個(gè)數(shù)的和)求兩個(gè)數(shù)的和. .2.已知梯形上底為已知梯形上底為2,下底為,下底為4,高為,高為5,求其面積,求其面積,設(shè)計(jì)出該問題的流程圖設(shè)計(jì)出該問題的流程圖開始5, 4, 2hbahbaS)(21輸出S結(jié)束. .順序結(jié)構(gòu)的程序框圖的基本特征:順序結(jié)構(gòu)的程序框圖

22、的基本特征:順序結(jié)構(gòu)知識(shí)小結(jié)順序結(jié)構(gòu)知識(shí)小結(jié)(2 2)各程序框從上到下用流程線依次)各程序框從上到下用流程線依次連接連接. .(1 1)必須有兩個(gè)起止框,穿插輸入、輸)必須有兩個(gè)起止框,穿插輸入、輸出框和處理框,沒有判斷框出框和處理框,沒有判斷框. .(3 3)處理框按計(jì)算機(jī)執(zhí)行順序沿流程線)處理框按計(jì)算機(jī)執(zhí)行順序沿流程線依次排列依次排列. . .條件結(jié)構(gòu)r=0?N不是質(zhì)數(shù)n是質(zhì)數(shù)是是否否知識(shí)探究(三):算法的條件結(jié)構(gòu)知識(shí)探究(三):算法的條件結(jié)構(gòu). .條件結(jié)構(gòu)條件結(jié)構(gòu)-在一個(gè)算法中在一個(gè)算法中,經(jīng)常會(huì)遇到一些經(jīng)常會(huì)遇到一些條件的判斷條件的判斷,算法的流向根據(jù)條件是否成立算法的流向根據(jù)條件是否

23、成立有不同的流向有不同的流向.條件結(jié)構(gòu)就是處理這種過程條件結(jié)構(gòu)就是處理這種過程的結(jié)構(gòu)的結(jié)構(gòu).滿足條件?是是否否步驟A步驟B滿足條件?是是否否步驟A. .課本例課本例4:任意給定任意給定3個(gè)正實(shí)數(shù)個(gè)正實(shí)數(shù),設(shè)計(jì)一個(gè)算法設(shè)計(jì)一個(gè)算法,判判斷分別以這斷分別以這3個(gè)數(shù)為三邊邊長(zhǎng)的三角形是否存在個(gè)數(shù)為三邊邊長(zhǎng)的三角形是否存在.畫出這個(gè)算法的程序框圖畫出這個(gè)算法的程序框圖.算法分析算法分析:第一步第一步:輸入輸入3個(gè)正實(shí)數(shù)個(gè)正實(shí)數(shù)a,b,c;第二步第二步:判斷判斷a+bc,a+cb,b+ca是否同時(shí)成立是否同時(shí)成立,若是若是,則能組成三角形則能組成三角形;若否若否,則組不成三角形則組不成三角形. .程序框

24、圖程序框圖:開始開始輸入輸入a,b,ca+bc,a+cb,b+ca是否是否同時(shí)成立同時(shí)成立?是是存在這樣的存在這樣的三角形三角形不存在這樣的不存在這樣的三角形三角形否否結(jié)束結(jié)束. .練習(xí)1城區(qū)一中學(xué)生數(shù)學(xué)模塊學(xué)分認(rèn)定由模塊成績(jī)決定,模塊成績(jī)由模塊考試成績(jī)和平時(shí)成績(jī)構(gòu)成,各占50%,若模塊成績(jī)大于或等于60分,獲得2學(xué)分,否則不能獲得學(xué)分(為0分),設(shè)計(jì)一算法,通過考試成績(jī)和平時(shí)成績(jī)計(jì)算學(xué)分,并畫出程序框圖. .開始結(jié)束輸入a,bS=60?學(xué)分=2學(xué)分=0否是S=(a+b)*0.5輸出學(xué)分. .220axbxc例 :設(shè)計(jì)一個(gè)求解一元二次方程的算法,并畫出程序框圖。3, ,a b c第一步:輸入

25、個(gè)系數(shù)24bac 第二步:計(jì)算0,;22bpqaa 第三步:判斷是否成立。若是,則計(jì)算否則,輸出“方程沒有實(shí)數(shù)根”,結(jié)束算法。算法步驟如下(課本例5):1212120;,xxpxpq xpqx x 第四步:判斷是否成立。若是,則輸出否則,計(jì)算并輸出. .開始輸入a,b,cacb42?0abp2aq2?0X1=p+qX2=p-q輸出x1,x2輸出“方程沒有實(shí)數(shù)根”輸出p結(jié)束否是否是. .是是練習(xí)練習(xí)2:設(shè)計(jì)一個(gè)求任意數(shù)的絕對(duì)值的算法設(shè)計(jì)一個(gè)求任意數(shù)的絕對(duì)值的算法,并畫并畫出程序框圖出程序框圖.(0)|(xxxxx當(dāng)時(shí)當(dāng) 0時(shí))算法分析算法分析:第一步第一步:輸入數(shù)輸入數(shù)x;第二步第二步:判斷判斷

26、x0是否是否成立成立?若是若是,則則|x|=x;若否若否,則則|x|=-x.程序框圖程序框圖:開始開始輸入輸入xx0?輸出輸出x否否輸出輸出-x結(jié)束結(jié)束. .練習(xí)練習(xí)3:畫程序畫程序框圖框圖,對(duì)于輸入的對(duì)于輸入的x值值,輸出相應(yīng)的輸出相應(yīng)的y值值.0(0)1(01)(1)xyxx x開始開始程序框圖程序框圖x0?是是y=0否否0 x7時(shí)時(shí)). .解解:y與與x之間的函數(shù)關(guān)系為之間的函數(shù)關(guān)系為:1.2 ,1.94.9xyx(當(dāng)當(dāng)0 x7時(shí)時(shí))(當(dāng)當(dāng)x7時(shí)時(shí))算法分析算法分析:第一步第一步:輸入每月用水量輸入每月用水量x;第二步第二步:判斷判斷x是否不超是否不超過過7.若是若是,則則y=1.2x;

27、若若否否,則則y=1.9x-4.9.第三步第三步:輸出應(yīng)交納的水輸出應(yīng)交納的水費(fèi)費(fèi)y.開始開始輸入輸入x03?y=x-2輸出yy=4-x否否是是開始max=a輸入bmaxb?輸出max結(jié)束max=b是是否否2.此為某一函數(shù)的求值程序此為某一函數(shù)的求值程序圖,則滿足該流程圖的函數(shù)圖,則滿足該流程圖的函數(shù)解析式為(解析式為( )(不能寫成分)(不能寫成分段函數(shù))段函數(shù))3.求函數(shù)的值的算法流程圖2, 22,22xxxxy開始輸入xX2?y=2xxy22輸出y結(jié)束否否是是答案答案:1.求兩個(gè)數(shù)中的最大值求兩個(gè)數(shù)中的最大值.答案答案:2. y=|x-3|+1. .作業(yè)作業(yè):P20頁(yè)頁(yè)A組組1;(畫出程

28、序框圖畫出程序框圖) 作業(yè): 設(shè)計(jì)房租收費(fèi)的算法,其要求是:住房面積80平方米以內(nèi),每平方米收費(fèi)3元,住房面積超過80平方米時(shí),超過部分,每平方米收費(fèi)5元.輸入住房面積數(shù),輸出應(yīng)付的房租. .作業(yè): 設(shè)計(jì)房租收費(fèi)的算法,其要求是:住房面積80平方米以內(nèi),每平方米收費(fèi)3元,住房面積超過80平方米時(shí),超過部分,每平方米收費(fèi)5元.輸入住房面積數(shù),輸出應(yīng)付的房租.算法分析:第一步:輸入住房面積輸入住房面積S第二步:根據(jù)面積選根據(jù)面積選擇計(jì)費(fèi)方式:如果擇計(jì)費(fèi)方式:如果S小于或等于小于或等于80,則,則租金為租金為M=s3,否,否則為則為M=240+(S-80)5第三步:輸出房租輸出房租M的值的值。開始結(jié)

29、束輸入面積S輸出租金MS=80M=3*SM=240+5*(S-8)否是. .課本課本50頁(yè)頁(yè)1(1)課堂講評(píng)課堂講評(píng)0(0)1(01)(1)xyxx x開始開始程序框圖程序框圖x0?是是y=0否否0 x1?是是y=1否否y=x輸出輸出y結(jié)束結(jié)束輸入輸入x上交作業(yè)上交作業(yè):課本課本P50頁(yè)頁(yè)A組組1(2), (畫出程序框圖畫出程序框圖) . .P:50頁(yè)頁(yè)A組組T1(2)22(2) (0)4(0)(2) (0)xxyxxx開始開始程序框圖程序框圖xn-1,或r=0?否是求n除以i的余數(shù)r 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)-在一些算法中在一些算法中,也經(jīng)常會(huì)出現(xiàn)從也經(jīng)常會(huì)出現(xiàn)從某處開始某處開始,按照一定條件按照一

30、定條件,反復(fù)執(zhí)行某一步反復(fù)執(zhí)行某一步驟的情況驟的情況,這就是循環(huán)結(jié)構(gòu)這就是循環(huán)結(jié)構(gòu).反復(fù)執(zhí)行的步反復(fù)執(zhí)行的步驟稱為循環(huán)體驟稱為循環(huán)體.知識(shí)探究(四):算法的循環(huán)結(jié)構(gòu)知識(shí)探究(四):算法的循環(huán)結(jié)構(gòu). .引例:設(shè)計(jì)一算法,求和:1+2+3+100第一步:確定首數(shù)確定首數(shù)a a,尾數(shù),尾數(shù)b b,項(xiàng)數(shù),項(xiàng)數(shù)n n;第二步:利用公式利用公式“總和總和=(=(首數(shù)首數(shù)+ +尾數(shù))尾數(shù))項(xiàng)數(shù)項(xiàng)數(shù)/2/2”求和;求和;第三步:輸出求和結(jié)果。輸出求和結(jié)果。算法1:開始結(jié)束輸入a,b,nS=(a+b)*n/2輸出S. .課本例課本例6:設(shè)計(jì)一個(gè)計(jì)算設(shè)計(jì)一個(gè)計(jì)算1+2+3+100的值的值的算法的算法,并畫出程序框

31、圖并畫出程序框圖.算法分析算法分析:第第1步步:0+1=1; 第第2步步:1+2=3;第第3步步:3+3=6; 第第4步步:6+4=10第第100步步:4950+100=5050.第第(i-1)步的結(jié)果步的結(jié)果+i=第第i步的結(jié)果步的結(jié)果各步驟有共同的結(jié)構(gòu)各步驟有共同的結(jié)構(gòu):為了方便有效地表示上述過程為了方便有效地表示上述過程,我我們引進(jìn)一個(gè)們引進(jìn)一個(gè)變量變量S來表示每一步來表示每一步的計(jì)算結(jié)果的計(jì)算結(jié)果,從而把第從而把第i步表示為步表示為 S=S+iS=0S=S + 1S=S + 2S=S + 3S=S + 100. .求和:1+2+3+100S=S+ i怎么用程序框圖表示呢?思考1:i有什

32、么作用?S呢?i = i + 1S=S + iS=0S=S + 1S=S + 2S=S + 3S=S + 100累加變量累加變量S來表示每一步來表示每一步的計(jì)算結(jié)果的計(jì)算結(jié)果,從而把第從而把第i步步表示為表示為 S=S+iS的初始值為的初始值為0,i依次取依次取1,2,100,由于由于i同時(shí)記錄了循環(huán)的次數(shù)同時(shí)記錄了循環(huán)的次數(shù),所所以以i稱為計(jì)數(shù)變量稱為計(jì)數(shù)變量. .i = i + 1S=S + i解決方法就是加上一個(gè)判斷,判斷是否已經(jīng)加到了100,如果加到了則退出,否則繼續(xù)加。試分析兩種流程的異同點(diǎn)直到型結(jié)構(gòu)當(dāng)型結(jié)構(gòu)S = S + ii=i+ 1是否S= S+ ii=i + 1否是i100?

33、請(qǐng)?zhí)钌吓袛嗟臈l件。. .程序框圖程序框圖:開始開始i=1S=0S=S+ii=i+1i100?是是輸出輸出S結(jié)束結(jié)束否否直到直到型循型循環(huán)結(jié)環(huán)結(jié)構(gòu)構(gòu)開始開始i=1S=0i100?是是S=S+ii=i+1否否輸出輸出S結(jié)束結(jié)束當(dāng)型循環(huán)當(dāng)型循環(huán)結(jié)構(gòu)結(jié)構(gòu). .思考2:若將“i=1”改成“i=0”,則程序框圖怎么改?開始結(jié)束輸出SS=0否是i=0S=S + ii = i + 1i=100?開始結(jié)束輸出Sum否是S=0i=0S=S + ii = i + 1i100?直到直到型循型循環(huán)結(jié)環(huán)結(jié)構(gòu)構(gòu)當(dāng)型循環(huán)當(dāng)型循環(huán)結(jié)構(gòu)結(jié)構(gòu). .結(jié)束S= S + ii=i + 1i=100?輸出S否是i=1,S=0開始步驟A步驟B 思考:3:將步驟A和步驟B交換位置,結(jié)果會(huì)怎樣?能達(dá)

溫馨提示

  • 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)論