《221《算法的基本結(jié)構(gòu)及設(shè)計(jì)》課件yuanlaide》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《221《算法的基本結(jié)構(gòu)及設(shè)計(jì)》課件yuanlaide(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2算法框圖的基本結(jié)構(gòu)及設(shè)計(jì)2.1順序結(jié)構(gòu)與選擇結(jié)構(gòu)算法框圖算法框圖:又稱(chēng)程序框圖程序框圖或流流程圖程圖,是一種用規(guī)定的圖形、指向線(xiàn)及文字說(shuō)明來(lái)準(zhǔn)確、直觀地表示算法的圖形。起、止框起、止框輸入、輸出框輸入、輸出框處處 理理 框框判判 斷斷 框框流流 程程 線(xiàn)線(xiàn)流流 程程 圖圖 常常 用用 圖圖 形形連接程序框圖的兩個(gè)部分連接點(diǎn)連接流程框,指明方向流程線(xiàn)用于判斷,有兩個(gè)出口判斷框賦值和計(jì)算處理框(執(zhí)行框)表示輸入和輸出的信息輸入、輸出框表示一個(gè)算法的起始和結(jié)束終端框(起止框)功能名稱(chēng)圖形符號(hào) 學(xué)習(xí)這部分知識(shí)的時(shí)候,要掌握各個(gè)圖形的形狀、作用及使用規(guī)則,畫(huà)程序框圖的規(guī)則如下:1、使用標(biāo)準(zhǔn)的圖形符號(hào)。
2、2、框圖一般按從上到下、從左到右的方向畫(huà)。3、除判斷框外,大多數(shù)流程圖符號(hào)只有一個(gè)進(jìn)入 點(diǎn)和一個(gè)退出點(diǎn)。判斷框是具有超過(guò)一個(gè)退出 點(diǎn)的唯一符號(hào)。4、判斷框分兩大類(lèi),一類(lèi)判斷框是“是”與“否”兩分 支的判斷,而且有且僅有兩個(gè)結(jié)果;另一類(lèi)是 多分支判斷,有幾種不同的結(jié)果。5、在圖形符號(hào)內(nèi)描述的語(yǔ)言要非常簡(jiǎn)練清楚。練習(xí)1 下列功能中處理框沒(méi)有的是( )A.賦值 B.計(jì)算 C.判斷 D.以上都不對(duì)練習(xí)2 關(guān)于框圖的圖形符號(hào)的理解,正確的有_任何一個(gè)框圖都必須有起止框;輸入框只能放在開(kāi)始框后,輸出框只能放在結(jié)束框之前;判斷框是唯一具有超過(guò)一個(gè)退出點(diǎn)的圖形符號(hào);對(duì)于一個(gè)程序來(lái)說(shuō),判斷框內(nèi)的條件是唯一的.假
3、假順序結(jié)構(gòu)步驟甲步驟甲步驟乙步驟乙選擇結(jié)構(gòu)真真條件條件步驟甲步驟甲步驟乙步驟乙7 7、用算法框圖分別表示順序結(jié)構(gòu)和選擇結(jié)構(gòu)。、用算法框圖分別表示順序結(jié)構(gòu)和選擇結(jié)構(gòu)。探探 究究尺規(guī)作圖,確定線(xiàn)段尺規(guī)作圖,確定線(xiàn)段AB的一個(gè)的一個(gè)5等分點(diǎn)等分點(diǎn)ABGPFEC DM 作法:如圖作法:如圖1、過(guò)、過(guò)A作射線(xiàn)作射線(xiàn)AP2、在射線(xiàn)、在射線(xiàn)AP上任取一點(diǎn)上任取一點(diǎn)C,得線(xiàn)段得線(xiàn)段AC3、在射線(xiàn)、在射線(xiàn)AP上作線(xiàn)段上作線(xiàn)段AC=CE=EF=FG=GD4、連接、連接BD, 過(guò)過(guò)C作作 CM / BD ,交交AB 于于 M5、M為所作的為所作的AB的一個(gè)的一個(gè) 5 等分點(diǎn)等分點(diǎn)開(kāi)始開(kāi)始從從A出發(fā)作一條射線(xiàn)出發(fā)作一
4、條射線(xiàn)在射線(xiàn)上取點(diǎn)在射線(xiàn)上取點(diǎn)C得線(xiàn)段得線(xiàn)段AC在射線(xiàn)上作在射線(xiàn)上作CE=EF=FG=GD=AC ,并連接,并連接BD過(guò)過(guò)C作作BD的平行線(xiàn)交的平行線(xiàn)交AB于于M , 即得即得AB的一個(gè)的一個(gè)5等分點(diǎn)等分點(diǎn)結(jié)束結(jié)束算法算法流程圖流程圖AB 順順 序序 結(jié)結(jié) 構(gòu)構(gòu)1 1、設(shè)計(jì)一個(gè)算法、設(shè)計(jì)一個(gè)算法, ,求一元求一元二次方程二次方程axax2 2+bx+c=0+bx+c=0(a0, ba0, b2 2-4ac0-4ac0)的根)的根, ,畫(huà)出相應(yīng)的框圖畫(huà)出相應(yīng)的框圖. . 輸入輸入系數(shù)系數(shù)a,b,ca,b,c輸出輸出X X1 1、X X2 2結(jié)束結(jié)束開(kāi)始開(kāi)始計(jì)算計(jì)算順序結(jié)構(gòu)順序結(jié)構(gòu)探究探究2 2、
5、設(shè)計(jì)一個(gè)算、設(shè)計(jì)一個(gè)算法法, ,求一元二次求一元二次方程方程axax2 2+bx+c=0+bx+c=0(a0a0)的根)的根, ,畫(huà)出相應(yīng)的框圖畫(huà)出相應(yīng)的框圖. . 輸入輸入a,b,ca,b,c輸出輸出x x1 1,x,x2 2結(jié)束結(jié)束開(kāi)始開(kāi)始00,則x的絕對(duì)值等于x,令m=x;若x0,則執(zhí)行第二步.第二步第二步, x的絕對(duì)值等于x,令m=x;第三步第三步,輸出m.算法分析:m=-x開(kāi)始輸入xx0m=x輸出m否是結(jié)束結(jié)束 選選 擇擇 結(jié)結(jié) 構(gòu)構(gòu)順序結(jié)構(gòu) 由若干個(gè)依次執(zhí)行的處理步驟組成的邏輯結(jié)構(gòu)。這是任何一個(gè)程序都離不開(kāi)的基本結(jié)構(gòu)。AB 在一個(gè)算法中,經(jīng)常會(huì)遇到一些條件的判斷,算法的流程根據(jù)條件
6、是否成立有不同的流向,這種算法結(jié)構(gòu)稱(chēng)為條件結(jié)構(gòu)。選擇結(jié)構(gòu)真真假假條件條件步驟甲步驟甲步驟乙步驟乙1 一個(gè)船工要送一匹狼、一只羊和一顆白菜過(guò)河.每次只能帶一樣,并且狼和羊不能單獨(dú)在一起,山羊和白菜也不能單獨(dú)在一起。應(yīng)該如何渡河? 開(kāi)始船工送羊過(guò)河船工獨(dú)自回來(lái)船工帶羊回來(lái)船工送狼過(guò)河船工送白菜過(guò)河船工獨(dú)自回來(lái)船工送羊過(guò)河結(jié)束課堂練習(xí):1.寫(xiě)出下列程序的運(yùn)行結(jié)果.(1)圖(1)中,輸出S=_(2) 圖(2)中,若R=8,則a=_開(kāi)始結(jié)束輸入a,ba=2b=4輸出SbaSab圖(1)開(kāi)始結(jié)束輸入Ra=2b輸出a圖(2)2Rb 2.下圖的作用是判斷輸入數(shù)x的奇偶性,則處應(yīng)為_(kāi)開(kāi)始結(jié)束輸入x輸出“x是奇數(shù)
7、”輸出“x是偶數(shù)”R=x除以2的余數(shù)是否2.通常說(shuō)一年有通常說(shuō)一年有365天,它表示地球圍繞太陽(yáng)天,它表示地球圍繞太陽(yáng)轉(zhuǎn)一周所需要的時(shí)間,但事實(shí)并不是這樣簡(jiǎn)轉(zhuǎn)一周所需要的時(shí)間,但事實(shí)并不是這樣簡(jiǎn)單。根據(jù)天文資料,地球圍繞太陽(yáng)轉(zhuǎn)一周所單。根據(jù)天文資料,地球圍繞太陽(yáng)轉(zhuǎn)一周所需要的精確時(shí)間是需要的精確時(shí)間是365.2422,稱(chēng)之為天文年。,稱(chēng)之為天文年。這個(gè)誤差看似不大,卻引起季節(jié)和日歷之間這個(gè)誤差看似不大,卻引起季節(jié)和日歷之間難以預(yù)料的大變動(dòng)。在歷法上規(guī)定四年一閏,難以預(yù)料的大變動(dòng)。在歷法上規(guī)定四年一閏,百年少一閏,每四百年又加一閏。如何判斷百年少一閏,每四百年又加一閏。如何判斷某一年是不是閏年呢
8、?請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,并某一年是不是閏年呢?請(qǐng)?jiān)O(shè)計(jì)一個(gè)算法,并用框圖表示這個(gè)算法用框圖表示這個(gè)算法分析理解:設(shè)分析理解:設(shè)y為年份,如果為年份,如果Y是閏年,那么是閏年,那么或者或者y能被能被4整除不能被整除不能被100整除,或者整除,或者y能被能被400整除。整除。解:算法步驟:1.若y不能被4整除,則輸出“y不是閏年”。2.若y不能被4整除,則判斷y是否能被100整除;(1)若y不能被100整除,則輸出“y是閏年”;(2)若y能被100整除,則判斷y是否能被400整除;若y能被400整除,則輸出“y是閏年”;若y不能被400整除,則輸出“y不是閏年”;開(kāi)始開(kāi)始輸入輸入y4整除整除y輸出輸出y不
9、是閏年不是閏年結(jié)束結(jié)束是是否否輸出輸出y是閏年是閏年100整除整除y400整除整除y是是否否是是否否4、閱讀下面的流程圖中,若輸入的數(shù)據(jù)a,b,c 分別是7,9,6,則輸出的結(jié)果是( ) A 、6 B 、9 C 、7 D、7,9, 6NYNY開(kāi)始開(kāi)始輸入輸入a,b,c的值的值abbc輸出輸出a輸出輸出b輸出輸出c結(jié)束結(jié)束ac輸出輸出cNYB課后練習(xí)1兩種解法對(duì)比開(kāi)始結(jié)束輸入xX1000Y=0X5000Y=2%*xX10000Y=3%*xY=5%*x輸出Y是是是否否否開(kāi)始結(jié)束輸入x輸出YX10000X5000X1000Y=5%*XY=3%*XY=2%*xY=0是是是否否否作業(yè):P90 2 及補(bǔ)充作業(yè)補(bǔ)充作業(yè)1:寫(xiě)出已知梯形的兩底和高寫(xiě)出已知梯形的兩底和高分別是分別是a、b、h的值,求的值,求梯形的面積的算法框圖。梯形的面積的算法框圖。補(bǔ)充作業(yè)2:已知函數(shù) ,設(shè)計(jì)程序框圖求對(duì)于任意給定x值,求y的值。1,00,01,0 xyxx過(guò)去的,讓它過(guò)去,永遠(yuǎn)不要回顧;未來(lái)的,等來(lái)了時(shí)再說(shuō),不要空想;我們只抓住了現(xiàn)在,用我們現(xiàn)在的理想,做我們所應(yīng)該做的. 茅盾