1 1 2程式框圖與演算法的基本邏輯結構 四課時

2022-09-12 05:12:03 字數 4854 閱讀 2717

1.1.2 程式框圖與演算法的基本邏輯結構(四課時)

教學分析

用自然語言表示的演算法步驟有明確的順序性,但是對於在一定條件下才會被執行的步驟,以及在一定條件下會被重複執行的步驟,自然語言的表示就顯得困難,而且不直觀、不準確.因此,本節有必要**使演算法表達得更加直觀、準確的方法.程式框圖用圖形的方式表達演算法,使演算法的結構更清楚、步驟更直觀也更精確.

為了更好地學好程式框圖,我們需要掌握程式框的功能和作用,需要熟練掌握三種基本邏輯結構.

第2課時條件結構

匯入新課

思路1(情境匯入)

我們以前聽過這樣乙個故事,野獸與鳥發生了一場戰爭,蝙蝠來了,野獸們喊道:你有牙齒是我們一夥的,鳥們喊道:你有翅膀是我們一夥的,蝙蝠一時沒了主意.

過了一會兒蝙蝠有了乙個好辦法,如果野獸贏了,就加入野獸這一夥,否則加入另一夥,事實上蝙蝠用了分類討論思想,在演算法和程式框圖中也經常用到這一思想方法,今天我們開始學習新的邏輯結構——條件結構.

思路2(直接匯入)

前面我們學習了順序結構,順序結構像是一條沒有分支的河流,奔流到海不復回,事實上多數河流是有分支的,今天我們開始學習有分支的邏輯結構——條件結構.

推進新課

新知**

提出問題

(1)舉例說明什麼是分類討論思想?

(2)什麼是條件結構?

(3)試用程式框圖表示條件結構.

(4)指出條件結構的兩種形式的區別.

討論結果:

(1)例如解不等式ax>8(a≠0),不等式兩邊需要同除a,需要明確知道a的符號,但條件沒有給出,因此需要進行分類討論,這就是分類討論思想.

(2)在乙個演算法中,經常會遇到一些條件的判斷,演算法的流程根據條件是否成立有不同的流向.條件結構就是處理這種過程的結構.

(3)用程式框圖表示條件結構如下.

條件結構:先根據條件作出判斷,再決定執行哪一種操作的結構就稱為條件結構(或分支結構),如圖1所示.執行過程如下:條件成立,則執行a框;不成立,則執行b框.

圖1圖2

注:無論條件是否成立,只能執行a、b之一,不可能兩個框都執行.a、b兩個框中,可以有乙個是空的,即不執行任何操作,如圖2.

(4)一種是在兩個「分支」中均包含演算法的步驟,符合條件就執行「步驟a」,否則執行「步驟b」;另一種是在乙個「分支」中均包含演算法的步驟a,而在另乙個「分支」上不包含演算法的任何步驟,符合條件就執行「步驟a」,否則執行這個條件結構後的步驟.

應用示例

例1 任意給定3個正實數,設計乙個演算法,判斷以這3個正實數為三邊邊長的三角形是否存在,並畫出這個演算法的程式框圖.

演算法分析:判斷以3個任意給定的正實數為三條邊邊長的三角形是否存在,只需驗證這3個數中任意兩個數的和是否大於第3個數.這個驗證需要用到條件結構.

演算法步驟如下:

第一步,輸入3個正實數a,b,c.

第二步,判斷a+b>c,b+c>a,c+a>b是否同時成立.若是,則存在這樣的三角形;否則,不存在這樣的三角形.

程式框圖如右圖:

點評:根據構成三角形的條件,判斷是否滿足任意兩邊之和大於第三邊,如果滿足則存在這樣的三角形,如果不滿足則不存在這樣的三角形.這種分類討論思想是高中的重點,在畫程式框圖時,常常遇到需要討論的問題,這時要用到條件結構.

例2 設計乙個求解一元二次方程ax2+bx+c=0的演算法,並畫出程式框圖表示.

演算法分析:我們知道,若判別式δ=b2-4ac>0,則原方程有兩個不相等的實數根

x1=,x2=;

若δ=0,則原方程有兩個相等的實數根x1=x2=;

若δ<0,則原方程沒有實數根.也就是說,在求解方程之前,可以先判斷判別式的符號,根據判斷的結果執行不同的步驟,這個過程可以用條件結構實現.

又因為方程的兩個根有相同的部分,為了避免重複計算,可以在計算x1和x2之前,先計算p=,q=.

解決這一問題的演算法步驟如下:

第一步,輸入3個係數a,b,c.

第二步,計算δ=b2-4ac.

第三步,判斷δ≥0是否成立.若是,則計算p=,q=;否則,輸出「方程沒有實數根」,結束演算法.

第四步,判斷δ=0是否成立.若是,則輸出x1=x2=p;否則,計算x1=p+q,x2=p-q,並輸出x1,x2.

程式框圖如下:

例3 設計演算法判斷一元二次方程ax2+bx+c=0是否有實數根,並畫出相應的程式框圖.

解:演算法步驟如下:

第一步,輸入3個係數:a,b,c.

第二步,計算δ=b2-4ac.

第三步,判斷δ≥0是否成立.若是,則輸出「方程有實根」;否則,輸出「方程無實根」.結束演算法.

相應的程式框圖如右:

點評:根據一元二次方程的意義,需要計算判別式δ=b2-4ac的值.再分成兩種情況處理:(1)當δ≥0時,一元二次方程有實數根;

(2)當δ<0時,一元二次方程無實數根.該問題實際上是乙個分類討論問題,根據一元二次方程係數的不同情況,最後結果就不同.因而當給出乙個一元二次方程時,必須先確定判別式的值,然後再用判別式的值的取值情況確定方程是否有解.

該例僅用順序結構是辦不到的,要對判別式的值進行判斷,需要用到條件結構.

例4 (1)設計演算法,求ax+b=0的解,並畫出流程圖.

解:對於方程ax+b=0來講,應該分情況討論方程的解.

我們要對一次項係數a和常數項b的取值情況進行分類,分類如下:

(1)當a≠0時,方程有唯一的實數解是;

(2)當a=0,b=0時,全體實數都是方程的解;

(3)當a=0,b≠0時,方程無解.

聯想數學中的分類討論的處理方式,可得如下演算法步驟:

第一步,判斷a≠0是否成立.若成立,輸出結果「解為」.

第二步,判斷a=0,b=0是否同時成立.若成立,輸出結果「解集為r」.

第三步,判斷a=0,b≠0是否同時成立.若成立,輸出結果「方程無解」,結束演算法.

程式框圖如下:

點評:這是條件結構疊加問題,條件結構疊加,程式執行時需依次對「條件1」「條件2」「條件3」……都進行判斷,只有遇到能滿足的條件才執行該條件對應的操作.

知能訓練

設計演算法,找出輸入的三個不相等實數a、b、c中的最大值,並畫出流程圖.

解:演算法步驟:

第一步,輸入a,b,c的值.

第二步,判斷a>b是否成立,若成立,則執行第三步;否則執行第四步.

第三步,判斷a>c是否成立,若成立,則輸出a,並結束;否則輸出c,並結束.

第四步,判斷b>c是否成立,若成立,則輸出b,並結束;否則輸出c,並結束.

程式框圖如下:

點評:條件結構巢狀與條件結構疊加的區別:

(1)條件結構疊加,程式執行時需依次對「條件1」「條件2」「條件3」……都進行判斷,只有遇到能滿足的條件才執行該條件對應的操作.

(2)條件結構的巢狀中,「條件2」是「條件1」的乙個分支,「條件3」是「條件2」的乙個分支……依此類推,這些條件中很多在演算法執行過程中根據所處的分支位置不同可能不被執行.

(3)條件結構巢狀所涉及的「條件2」「條件3」……是在前面的所有條件依次乙個乙個的滿足「分支條件成立」的情況下才能執行的此操作,是多個條件同時成立的疊加和復合.

例5 「特快專遞」是目前人們經常使用的異地郵寄信函或託運物品的一種快捷方式.某快遞公司規定甲、乙兩地之間物品的託運費用根據下列方法計算:

f=其中f(單位:元)為托運費,ω為託運物品的重量(單位:千克).

試畫出計算費用f的程式框圖.

分析:這是乙個實際問題,根據數學模型可知,求費用f的計算公式隨物品重量ω的變化而有所不同,因此計算時先看物品的重量,在不同的條件下,執行不同的指令,這是條件結構的運用,是二分支條件結構.其中,物品的重量通過輸入的方式給出.

解:演算法程式框圖如右圖:

拓展提公升

有一城市,市區為半徑為15 km的圓形區域,近郊區為距中心15—25 km的範圍內的環形地帶,距中心25 km以外的為遠郊區,如右圖所示.市區地價每公頃100萬元,近郊區地價每公頃60萬元,遠郊區地價為每公頃20萬元,輸入某一點的座標為(x,y),求該點的地價.

分析:由該點座標(x,y),求其與市中心的距離r=,確定是市區、近郊區,還是遠郊區,進而確定地價p.由題意知,p=

解:程式框圖如下:

課堂小結

(1)理解兩種條件結構的特點和區別.

(2)能用學過的兩種條件結構解決常見的演算法問題.

作業 習題1.1a組3.

設計感想

本節採用引人入勝的方法引入正課,選用的例題難度適中,有的經典實用,有的新穎獨特,每個例題都是很好的素材.條件結構是邏輯結構的核心,是培養學生邏輯推理的好素材,本節設計符合新課標精神,難度設計略高於教材.

第3課時迴圈結構

匯入新課

思路1(情境匯入)

我們都想生活在乙個優美的環境中,希望看到的是碧水藍天,大家知道工廠的汙水是怎樣處理的嗎?汙水進入處理裝置後進行第一次處理,如果達不到排放標準,則需要再進入處理裝置進行處理,直到達到排放標準.汙水處理裝置是乙個迴圈系統,對於處理需要反覆操作的事情有很大的優勢.

我們數學中有很多問題需要反覆操作,今天我們學習能夠反覆操作的邏輯結構——迴圈結構.

思路2(直接匯入)

前面我們學習了順序結構,順序結構像一條沒有分支的河流,奔流到海不復回;上一節我們學習了條件結構,條件結構像有分支的河流最後歸入大海;事實上很多水系是迴圈往復的,今天我們開始學習迴圈往復的邏輯結構——迴圈結構.

推進新課

新知**

提出問題

(1)請大家舉出一些常見的需要反覆計算的例子.

(2)什麼是迴圈結構、迴圈體?

(3)試用程式框圖表示迴圈結構.

(4)指出兩種迴圈結構的相同點和不同點.

討論結果:

(1)例如用二分法求方程的近似解、數列求和等.

(2)在一些演算法中,經常會出現從某處開始,按照一定的條件反覆執行某些步驟的情況,這就是迴圈結構.反覆執行的步驟稱為迴圈體.

(3)在一些演算法中要求重複執行同一操作的結構稱為迴圈結構.即從演算法某處開始,按照一定條件重複執行某一處理的過程.重複執行的處理步驟稱為迴圈體.

1 1 2程式框圖與演算法的基本邏輯結構

1.1.2 程式框圖與演算法的基本邏輯結構 第1課時程式框圖 順序結構 課時目標 1.理解程式框圖的含義.2.掌握各類程式框的功能.3.掌握演算法的順序結構 1 程式框圖 1 程式框圖又稱流程圖,是一種用程式框 流程線及文字說明來表示演算法的圖形 2 在程式框圖中,乙個或幾個程式框的組合表示演算法中...

1 1 2程式框圖與演算法的基本邏輯結構

授課題目 演算法與程式框圖 2共 1 課時執筆人 田博集體備課時間教師授課時間 1 學習 教學 目標 三維目標 共性旁註 個性化設計 一 知識與技能 1.正確理解演算法的概念及演算法的程式及步驟,區分演算法與一般具體問題的解法 2.理解演算法的五個特徵 概括性 邏輯性 有窮性 普遍性 不唯一性 3....

1 1 2程式框圖與演算法的基本邏輯結構 3

二 知識應用 一 與條件結構有關的演算法問題 認真自學課本p10 p11的例4 例5完成以下練習 練習1 以下分段函式,對於輸入的x值,輸出相應的y值,畫出程式框圖。12 練習2.下圖是求解一元二次方程的流程圖,請在空缺的地方填空。練習3.根據程式框圖3,寫出相應的函式解析式 練習2練習3 二 與迴...