高中數(shù)學必修三 算法程序框圖
會計學1高中數(shù)學必修三高中數(shù)學必修三 算法程序框圖算法程序框圖1.1.1 算法的概念算法的概念第1頁/共32頁問題問題1請你寫出解二元一次方程組的詳細求解請你寫出解二元一次方程組的詳細求解過程過程.2121xyxy 第一步第一步:-2得得:5y=3 第二步第二步:解得解得:35y 第三步第三步:將將 代入代入,解得解得 .35y 15x 對于一般的二元一次方程組對于一般的二元一次方程組其中其中 也可以按照上述步驟求解也可以按照上述步驟求解.111222a xb yca xb yc1 22 10aba b第2頁/共32頁這些步驟就構成了解二元一次方程組這些步驟就構成了解二元一次方程組的算法的算法,我們可以根據(jù)這一算法編制計算機程我們可以根據(jù)這一算法編制計算機程序序,讓計算機來解二元一次方程組讓計算機來解二元一次方程組.算法的概念與特征算法的概念與特征在數(shù)學上,現(xiàn)代意義上的“算法”通常是指按照一定規(guī)則解決某一類問題的明確和有限的步驟。第3頁/共32頁例例1:任意給定一個大于任意給定一個大于1的整數(shù)的整數(shù)n,試設計一個試設計一個程序或步驟對程序或步驟對n是否為質數(shù)做出判定是否為質數(shù)做出判定.分析分析:請回顧這個問題的解題過程請回顧這個問題的解題過程.算法分析算法分析:第一步第一步:判斷判斷n是否等于是否等于2.若若n=2,則則n是質數(shù)是質數(shù);若若n2,則執(zhí)行第二步則執(zhí)行第二步.第二步第二步:依次檢驗依次檢驗2(n-1)這些整數(shù)是不是這些整數(shù)是不是n的的因數(shù)因數(shù),即是不是整除即是不是整除n的數(shù)的數(shù).若有這樣的數(shù)若有這樣的數(shù),則則n不不是質數(shù)是質數(shù);若沒有這樣的數(shù)若沒有這樣的數(shù),則則n是質數(shù)是質數(shù).說明說明:用語言描述一個算法用語言描述一個算法,最便捷的方式就是最便捷的方式就是按解決問題的步驟進行描述按解決問題的步驟進行描述.每一步做一件事情每一步做一件事情.第4頁/共32頁練習一練習一:任意給定一個正實數(shù)任意給定一個正實數(shù),設計一個設計一個算法求以這個數(shù)為半徑的圓的面積算法求以這個數(shù)為半徑的圓的面積.算法分析算法分析:第一步第一步:輸入任意一個正實數(shù)輸入任意一個正實數(shù)r;第二步第二步:計算以計算以r為半徑的圓的面積為半徑的圓的面積S=r2;第三步第三步:輸出圓的面積輸出圓的面積.第5頁/共32頁練習二練習二:任意給定一個大于任意給定一個大于1的正整數(shù)的正整數(shù)n,設計一個算法求出設計一個算法求出n的所有因數(shù)的所有因數(shù).算法分析算法分析:第一步第一步:依次從依次從2(n-1)為除數(shù)去除為除數(shù)去除n,判斷判斷余數(shù)是否為余數(shù)是否為0,若是若是,則是則是n的因數(shù)的因數(shù);若不是若不是,則不是則不是n的因數(shù)的因數(shù).第二步第二步:在在n的因數(shù)中加入的因數(shù)中加入1和和n;第三步第三步:輸出輸出n的所有因數(shù)的所有因數(shù).第6頁/共32頁1.1.2 程序框圖與算法的基本邏輯結構程序框圖與算法的基本邏輯結構從上節(jié)課我們知道從上節(jié)課我們知道:算法可以用自然語言來描述算法可以用自然語言來描述.第一步第一步第二步第二步第三步第三步為了使算法的程序或步驟表達得更為為了使算法的程序或步驟表達得更為直觀直觀,我們更經(jīng)常地用圖形方式來表示我們更經(jīng)常地用圖形方式來表示它它.第7頁/共32頁開始輸入ni=2求n除以i的余數(shù)ri的值增加1仍用i表示in或r=0?n不是質數(shù)結束是是否否是是n是質數(shù)否否r=0?設n是一個大于2的整數(shù).一般用i=i+1表示.i=i+1說明說明:i表示從表示從2(n-1)的所有正整數(shù)的所有正整數(shù),用以用以判斷例判斷例1步驟步驟2是否是否終止終止,i是一個計數(shù)變是一個計數(shù)變量量,有了這個變量有了這個變量,算算法才能依次執(zhí)行法才能依次執(zhí)行.逐逐步考察從步考察從2(n-1)的的所有正整數(shù)中是否所有正整數(shù)中是否有有n的因數(shù)存在的因數(shù)存在.第8頁/共32頁思考思考:通過上述算法的兩種不同表達方式的比較通過上述算法的兩種不同表達方式的比較,你覺得用程序框圖來表達算法有哪些特點你覺得用程序框圖來表達算法有哪些特點?用程序框圖表示的算法更加簡練用程序框圖表示的算法更加簡練,直觀直觀,流向清流向清楚楚.程序框圖程序框圖又稱又稱流程圖流程圖,是一種用規(guī)定的圖是一種用規(guī)定的圖形、指向線及文字說明來準確、直觀地表示算形、指向線及文字說明來準確、直觀地表示算法的圖形法的圖形.通常通常,程序框圖由程序框和流程線組成程序框圖由程序框和流程線組成.一個或幾個程序框的組合表示算法中的一個步驟一個或幾個程序框的組合表示算法中的一個步驟;流程線是方向箭頭流程線是方向箭頭,按照算法進行的順序將程序按照算法進行的順序將程序框連接起來框連接起來.第9頁/共32頁基本的程序框和它們各自表示的功能如下基本的程序框和它們各自表示的功能如下:圖形符號圖形符號名稱名稱功能功能終端框終端框(起止框起止框)表示一個算法的起始表示一個算法的起始和結束和結束輸入、輸入、輸出框輸出框表示一個算法輸入和表示一個算法輸入和輸出的信息輸出的信息處理框處理框(執(zhí)行框執(zhí)行框)判斷某一條件是否成立判斷某一條件是否成立,成立成立時在出口處標明時在出口處標明“是是”或或“Y”;不;不”成立時標明成立時標明“否否”或或“N”.判斷框判斷框賦值、計算賦值、計算流程線流程線連接程序框連接程序框連接點連接點連接程序框圖的兩部分連接程序框圖的兩部分第10頁/共32頁開始輸入ni=2求n除以i的余數(shù)ri=i+1in或r=0?n不是質數(shù)結束是是否否是是n是質數(shù)否否r=0?順序結構用程序框圖來表示算法,有用程序框圖來表示算法,有三種不同的基本邏輯結構:三種不同的基本邏輯結構:條件結構循環(huán)結構第11頁/共32頁程序框圖的三種基本的邏輯結構程序框圖的三種基本的邏輯結構順序結順序結構構條件結構條件結構循環(huán)結循環(huán)結構構第12頁/共32頁(1)順序結構順序結構-是由若干個是由若干個依次依次執(zhí)行的處執(zhí)行的處理步驟組成的理步驟組成的.這是任何一個算法都離不開這是任何一個算法都離不開的基本結構的基本結構.例例1:已知一個三角形的三邊邊長分別為已知一個三角形的三邊邊長分別為2,3,4,利用海倫利用海倫-秦九韶公式設計一個算法秦九韶公式設計一個算法,求出它的求出它的面積面積,畫出算法的程序框圖畫出算法的程序框圖.算法分析算法分析:第一步第一步:計算計算p的值的值.第二步第二步:由海倫由海倫-秦九韶公式求出三角形的面積秦九韶公式求出三角形的面積S.第三步第三步:輸出輸出S的值的值.第13頁/共32頁(1)順序結構順序結構-是由若干個依次執(zhí)行的處是由若干個依次執(zhí)行的處理步驟組成的理步驟組成的.這是任何一個算法都離不開這是任何一個算法都離不開的基本結構的基本結構.例例1:已知一個三角形的三邊邊長分別為已知一個三角形的三邊邊長分別為2,3,4,利用海倫利用海倫-秦九韶公式設計一個算法秦九韶公式設計一個算法,求出它的求出它的面積面積,畫出算法的程序框圖畫出算法的程序框圖.算法分析算法分析:第一步第一步:計算計算p的值的值.第二步第二步:由海倫由海倫-秦九韶公式求出三角形的面積秦九韶公式求出三角形的面積S.第三步第三步:輸出輸出S的值的值.第14頁/共32頁已知三角形三邊長分別為已知三角形三邊長分別為a,b,c,則三角則三角形的面積為形的面積為其中其中 這個公式被稱為海倫這個公式被稱為海倫秦九韶公式秦九韶公式.()()()Sp papbpc2abcp返回第15頁/共32頁程序框圖程序框圖:開始2342p(2)(3)(4)Sp ppp輸出S結束第16頁/共32頁(2)條件結構條件結構-在一個算法中在一個算法中,經(jīng)常會遇到一經(jīng)常會遇到一些條件的判斷些條件的判斷,算法的流向算法的流向根據(jù)條件是否成根據(jù)條件是否成立有不同的流向立有不同的流向.條件結構就是處理這種過條件結構就是處理這種過程的結構程的結構.例例2:任意給定任意給定3個正實數(shù)個正實數(shù),設計一個算法設計一個算法,判斷分判斷分別以這別以這3個數(shù)為三邊邊長的三角形是否存在個數(shù)為三邊邊長的三角形是否存在.畫畫出這個算法的程序框圖出這個算法的程序框圖.算法分析算法分析:第一步第一步:輸入輸入3個正實數(shù)個正實數(shù)a,b,c;第二步第二步:判斷判斷a+bc,a+cb,b+ca是否同時成立是否同時成立,若是若是,則能組成三角形則能組成三角形;若否若否,則組不成三角形則組不成三角形.第17頁/共32頁程序框圖程序框圖:開始輸入a,b,ca+bc,a+cb,b+ca是否同時成立?是是存在這樣的三角形不存在這樣的三角形否否結束第18頁/共32頁例例3:為了加強居民的節(jié)水意識為了加強居民的節(jié)水意識,某市制訂了以某市制訂了以下生活用水收費標準下生活用水收費標準:每戶每月用水未超過每戶每月用水未超過7m3時時,每立方米收費每立方米收費1.0元元,并加收并加收0.2元的城元的城市污水處理費市污水處理費;超過超過7m3的部分的部分,每立方米收費每立方米收費1.5元元,并加收并加收0.4元的城市污水處理費元的城市污水處理費,請你寫請你寫出某戶居民每月應交納的水費出某戶居民每月應交納的水費y(元元)與用水量與用水量x(m3)之間的函數(shù)關系之間的函數(shù)關系,然后設計一個求該函然后設計一個求該函數(shù)值的算法數(shù)值的算法,并畫出程序框圖并畫出程序框圖.解解:y與與x之間的函數(shù)關系為之間的函數(shù)關系為:1.2,1.94.9xyx(當當0 x7時時)(當當x7時時)第19頁/共32頁解解:y與與x之間的函數(shù)關系為之間的函數(shù)關系為:1.2,1.94.9xyx(當當0 x7時時)(當當x7時時)算法分析算法分析:第一步第一步:輸入每月用水輸入每月用水量量x;第二步第二步:判斷判斷x是否不超是否不超過過7.若是若是,則則y=1.2x;若若否否,則則y=1.9x-4.9.第三步第三步:輸出應交納的輸出應交納的水費水費y.開始輸入x0 x7?是是y=1.2x否否y=1.9x-4.9輸出y結束程序框圖程序框圖第20頁/共32頁例例4.畫程序框圖畫程序框圖,對于輸入的對于輸入的x值值,輸出相應的輸出相應的y值值.0(0)1(01)(1)xyxx x開始程序框圖程序框圖x0?是是y=0否否0 x1?是是y=1否否y=x輸出y結束輸入x第21頁/共32頁是是例例5.設計一個求任意數(shù)的絕對值的算法設計一個求任意數(shù)的絕對值的算法,并畫出并畫出程序框圖程序框圖.(0)|(xxxxx當時當 100?是是輸出S結束否否直到型循環(huán)結構開始i=1S=0i100?是是S=S+ii=i+1否否輸出S結束當型循環(huán)結構第26頁/共32頁開始輸入ni=2求n除以i的余數(shù)ri=i+1in或r=0?n不是質數(shù)結束是是否否是是n是質數(shù)否否r=0?順序結構用程序框圖來表示算法,有用程序框圖來表示算法,有三種不同的基本邏輯結構:三種不同的基本邏輯結構:條件結構循環(huán)結構直到型循環(huán)結構第27頁/共32頁 若是若是,則則m為所求為所求;探究探究:畫出用二分法求方程畫出用二分法求方程x2-2=0的近似根的近似根(精精確度為確度為0.005)的程序框圖的程序框圖.算法分析算法分析:第一步第一步:令令f(x)=x2-2.因為因為f(1)0,所以設所以設a=1,b=2.第二步第二步:令令,2abm判斷判斷f(m)是否為是否為0.若否若否,則繼續(xù)判斷則繼續(xù)判斷f(a)(m)大于大于0還是小于還是小于0.第三步第三步:若若f(a)(m)0,則令則令a=m;否則否則,令令b=m.第四步第四步:判斷判斷|a-b|0?程序框圖程序框圖開始f(x)=x2-2輸入誤差和初值a,b2abmf(m)=0?a=m否否b=m|a-b|0?程序框圖程序框圖開始f(x)=x2-2輸入誤差和初值a,b2abma=m否否b=m|a-b|或f(m)=0?輸出m結束第30頁/共32頁基本結構,無論怎樣復雜的邏基本結構,無論怎樣復雜的邏輯結構,都可以通過這三種結輯結構,都可以通過這三種結構來表達構來表達第31頁/共32頁