《《程序框圖與算法的基本邏輯結(jié)構(gòu)》(新人教版必修3)jing.ppt》由會員分享,可在線閱讀,更多相關(guān)《《程序框圖與算法的基本邏輯結(jié)構(gòu)》(新人教版必修3)jing.ppt(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章 算法初步 1.1.2 程序框圖與算法的基本邏輯結(jié)構(gòu) 1.算法的概念是什么? 在數(shù)學(xué)中, 按照 一定規(guī)則 解決 某一類 問題 的 明確和有限 的步驟稱為算法 . 一、復(fù)習(xí)回顧 2.算法的步驟 我們可以用 自然語言 表述一個算法,但往 往 過程復(fù)雜,缺乏簡潔性 因此,我們有必要探究使算法的 結(jié)構(gòu)更清 楚、步驟更直觀也更精確 的方法 這個想法可以實現(xiàn)嗎? 3.通過 1.1.1節(jié)算法可以看出 算法的步驟 有 明確 的順序性 有些步驟 只有在一定條件 下才會被執(zhí)行 有些步驟 在一定條件下會被重復(fù) 執(zhí)行 因此,探究使算法的 結(jié)構(gòu)更清楚、步 驟更直觀也更
2、精確 的方法,我們的這個 想法是可以實現(xiàn)的! 一、復(fù)習(xí)回顧 程序框 圖 1.1.2 程序框圖 與算法的基本邏輯結(jié)構(gòu) 第一課時 二、講授新課 1、程序框圖 ( 1)程序框圖的概念 程序框圖又稱流程圖 , 是一種用 程序框 、 流程線及文字說明 來 準確 、 直觀地 表示算法的圖 形 . 程序框圖是算法的一種表現(xiàn)形式 ,也就是說, 一個算法可以用 算法的步驟表示,也可以用程序 框圖表示 ,所以,通常是先寫出算法的步驟,然 后再轉(zhuǎn)化為對應(yīng)的程序框圖。 ( 2)構(gòu)成程序框圖的圖形符號及其功能 圖形符號 名稱 功能 終端框 (起止框 ) 輸入、 輸
3、出框 處理框 (執(zhí)行框 ) 判斷框 表示一個算法的 起始和結(jié)束 表示一個算法 輸入和輸出 的信息 賦值、計算 判斷某一條件是否成立 成立時在出口處標明 “ 是 ” 或 “ Y 不成立時標明 “ 否 ” 或 “ N”. 流程線 連接 程序框 連結(jié)點 連接程序框圖的兩部分 一個完整的程序框圖, 一定是 以起 止框表示開始, 同時又以 起止框表示結(jié)束 流程線是帶有方向的箭頭,用以連接程序框,直觀 的表示算法的流程。 在程序框圖中, 任意兩個程序框圖之間都存在流程線; 除起止框外,任意一個程序框都只有一條流程線“流進” 輸入輸出框、處理框都只有一條流程線
4、“流出” 但是判斷框一定是兩條流程線“流出” 例如:在 1.1.1節(jié)中判斷 “整數(shù) n (n2)是否是質(zhì)數(shù)” 的算法 第一步 給定大于 2的整數(shù) n 第二步 令 i =2 第三步 用 i 除 n得到余數(shù) r 第四步 判斷 “ r=0” 是否成立 . 若是 , 則 n不是質(zhì)數(shù) , 算法結(jié)束; 否則 , 將 i的值增加 1, 仍用 i表示 . 第五步 判斷 “ i(n-1)”是否成立 . 若是 , 則 n是質(zhì)數(shù) , 算法結(jié)束; 否則 , 返回第三步 算法步驟: 程序框圖 : 開始 輸入 n i =2 求 n除以 i的余數(shù) r i的值增加 1 仍用 i表示 in-1或 r=0
5、? r=0? 結(jié)束 輸出 “ n不是質(zhì)數(shù) ” 輸出 “ n是質(zhì)數(shù) ” 是 是 否 否 請輸入一個數(shù)判斷是否為質(zhì)數(shù) 開始 輸入 n i =2 求 n除以 i的余數(shù) r i的值增加 1 仍用 i表示 in-1或 r=0? r=0? 結(jié)束 輸出 “ n不是質(zhì)數(shù) ” 輸出 “ n是質(zhì)數(shù) ” 是 是 否 否 用程序框圖 表示算法時, 算法的邏輯 結(jié)構(gòu) 展現(xiàn)得 非常清楚 順序結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 條件結(jié)構(gòu) 算 法 的 三 種 基 本 邏 輯 結(jié) 構(gòu) 你能說出這三種基本邏輯結(jié) 構(gòu)的 特點 嗎? 條件結(jié)構(gòu)與循 環(huán)結(jié)構(gòu)有什么 區(qū) 別和聯(lián)系? 2、算法的三種基本邏輯
6、結(jié)構(gòu) 順序結(jié)構(gòu)、條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。 順序結(jié)構(gòu)是由若干個 依次執(zhí)行 的步驟組成的。 這是任何一個算法都離不開的一種基本算法結(jié)構(gòu)。 ( 1)順序結(jié)構(gòu) 順序結(jié)構(gòu)可以用程序框圖表示為: 步驟 n 步驟 n+1 例 3 已知一個三角形的三邊長分別為 a, b, c,利用 海倫 -秦九韶公式設(shè)計一個計算三角形面積的算法, 并畫出程序框圖表示 . 算法步驟: 第一步,輸入三角形三邊長 a, b, c 第二步,計算 第三步,計算 第四步,輸出 s. 程序框圖: 結(jié) 束 開 始 輸入 a, b, c 輸出 s 2 cbap 程序框圖: 結(jié)束 開始 輸入
7、r 輸出 s 練習(xí) 1: 任意給定一個正實數(shù),設(shè)計一個算法 求以這個數(shù)為半徑的圓的面積,并畫出程序框 圖表示 . 算法步驟 : 第一步,輸入圓的半徑 r . 第二步,計算 S=r2 第三步,輸出 S. 計算 S=r2 在算法中,通過對某個條件的判斷,根 據(jù) 條件是否成立 選擇不同流向的算法結(jié)構(gòu)稱為 條件結(jié)構(gòu)。 ( 2)條件結(jié)構(gòu) 條件結(jié)構(gòu)可以用程序框圖表示為下面兩種形 式: 滿足條件 ? 步驟 A 步驟 B 是 否 滿足條件 ? 步驟 A 是 否 例 4 任意給定 3個正實數(shù) ,設(shè)計一個算法 ,判斷分別以 這三個數(shù)為三邊邊長的三角形是否存在 .畫出這個算法 的程
8、序框圖 . 算法步驟 : 第一步,輸入 3個正實數(shù) a , b, c . 第二步,判斷 a+ bc, a+ cb, b+ ca是否同時成立 ? 若是,則存在這樣的三角形; 否則,不存在這樣的三角形。 程序框圖: 結(jié)束 開始 輸入 a,b,c 存在這樣的三角形 a+ bc, a+ cb, b+ ca是否同時 成立 ? 不存在這樣的三角形 是 否 條件結(jié)構(gòu) 練習(xí) 2: 如果學(xué)生的成績大于或等于 60分,則輸 出 “ 及格 ” ,否則輸出 “ 不及格 ” . 用程序框圖表示這一算法過程 . 程序框圖: 結(jié)束 開始 輸入 A
9、 輸出“不及格” A100? 是 輸出 S 結(jié)束 否 直到型 循環(huán) 結(jié)構(gòu) 開始 i=1 S=0 i100? 是 S=S+i i=i+1 否 輸出 S 結(jié)束 當(dāng)型循 環(huán)結(jié)構(gòu) 變式 1: 右邊的程序框圖輸出 S= ? 開始 i=1 i100? 是 輸出 S 結(jié)束 S=0 i=i+1 S=S+i 否 開始 i=1 i3? 是 輸出 S 結(jié)束 S=0 S=S+i i=i+1 否 9 變式 2:右邊的程序框圖 , 輸出 S= ? 開始 i=1 i3? 是 輸出 S 結(jié)束 S=0 i=i+1 S=S+i2 否 題型一:程序框圖的閱讀與理解 1
10、4 說明 :(1)一般地 ,循環(huán)結(jié)構(gòu)中都有一個計數(shù)變量 和累加變量 .計數(shù)變量用于記錄循環(huán)次數(shù) ,同時它 的取值還用于判斷循環(huán)是否終止 ,累加變量用于 輸出結(jié)果 .累加變量和計數(shù)變量一般是同步執(zhí)行 的 ,累加一次 ,記數(shù)一次 . (2)循環(huán)結(jié)構(gòu)分為兩種 ------當(dāng)型和直到型 . 當(dāng)型循環(huán) 在每次執(zhí)行循環(huán)體前對循環(huán)條件 進行判斷 ,當(dāng)條件滿足時執(zhí)行循環(huán)體 ,不滿足則 停止 ;(當(dāng)條件滿足時反復(fù)執(zhí)行循環(huán)體 ) 直到型循環(huán) 在執(zhí)行了一次循環(huán)體之后 ,對 控制循環(huán)條件進行判斷 ,當(dāng)條件不滿足時執(zhí)行循 環(huán)體 ,滿足則停止 .(反復(fù)執(zhí)行循環(huán)體 ,直到條件滿 足 ) 循環(huán)結(jié)構(gòu) 開始 輸入 n i
11、=2 求 n除以 i的余數(shù) r i=i+1 in或 r=0? n不是質(zhì)數(shù) 結(jié)束 是 否 是 n是質(zhì)數(shù) 否 r=0? 順序結(jié)構(gòu) 用程序框圖來表示算法, 有三種不同的基本邏輯結(jié)構(gòu) : 條件結(jié) 構(gòu) 循環(huán)結(jié) 構(gòu) 直到型 循環(huán)結(jié)構(gòu) 例 2 某工廠 2005年的年生產(chǎn)總值為 200萬元,技術(shù)革新后預(yù)計以后每年的年 生產(chǎn)總值都比上一年增長 5%.設(shè)計一個程 序框圖,輸出預(yù)計年生產(chǎn)總值超過 300萬 元的最早年份 . 第三步,判斷所得的結(jié)果是否大于 300. 若是,則輸出該年的年份; 否則,返回第二步 . 第一步, 輸入 2005年的年生產(chǎn)總值 . 第二步,計算下一年的年
12、生產(chǎn)總值 . 算法分析 : ( 3)控制條件 :當(dāng)“ a300” 時終止循環(huán) . ( 1)循環(huán)體 :設(shè) a為某年的年生產(chǎn)總值, t為年生產(chǎn)總值的年增長量 ,n為年份 ,則 t=0.05a, a=a+t, n=n+1. ( 2)初始值 :n=2005,a=200. 循環(huán)結(jié)構(gòu) : 開始 n=2005 a=200 t=0.05a a=a+t n=n+1 a300? 結(jié)束 輸出 n 是 否 程序框圖 : 循環(huán)結(jié)構(gòu) : 開始 n=2005 a=200 t=0.05a a=a+t n=n+1 輸出 n 結(jié)束 是 否 a300? v當(dāng)型循環(huán)結(jié)構(gòu)程序框圖 1、 如果執(zhí)行下面的程序框
13、圖 , 那么輸出的 S=( ) A.7 B.9 C.11 D.13 C 2.( 2009浙江卷 ) 某程序框圖如圖所示 , 該程序運行后輸出的 k 的值是 ( ) A.4 B.5 C.6 D.7 A 若是 ,則 m 為所求 ; 探究 :畫出用二分法求方程 x2-2=0的近似根 (精 確度為 0.005)的程序框圖 . 算法分析 : 第一步 :令 f(x)=x2-2. 因為 f(1)0, 所以設(shè) a=1,b=2. 第二步 :令 請輸入一個數(shù)判斷是否為質(zhì)數(shù) 判斷 f(m)是否為 0. 若否 ,則繼續(xù)判斷 f(a) (m)大于
14、 0還是小于 0. 第三步 :若 f(a) (m)0,則令 a=m;否則 ,令 b=m. 第四步 :判斷 |a-b|0? 程序框圖 開始 f(x)=x2-2 輸入誤差 和初值 a,b a=m 否 b=m |a-b|<或 f(m)=0? 輸出 m 結(jié)束 請輸入一個數(shù)判斷是否為質(zhì)數(shù) 1、掌握程序框的畫法和功能。 2、了解什么是程序框圖,知道學(xué)習(xí)程序 框圖的意義。 3、掌握順序結(jié)構(gòu)、條件結(jié)構(gòu)的應(yīng)用,并 能解決與這兩種結(jié)構(gòu)有關(guān)的程序框圖 的畫法。 五、課時小結(jié) : 六、課外作業(yè) 1、認真閱讀課本 例 5 完成作業(yè) 畫出解不等式 ax+b 0(ab0) 的程序框 圖 . 2、 預(yù)習(xí) 循環(huán)結(jié)構(gòu)