《分支結(jié)構(gòu)程序設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《分支結(jié)構(gòu)程序設(shè)計(jì)(8頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、分支結(jié)構(gòu)
分支結(jié)構(gòu)程序設(shè)計(jì)
教學(xué)目標(biāo)
知識與技能:理解程序設(shè)計(jì)的分支結(jié)構(gòu)基本思想
掌握分支結(jié)構(gòu)語句特點(diǎn)
過程與方法:培養(yǎng)用算法分析問題的能力
能夠使用分支結(jié)構(gòu)繪制流程圖和編寫簡單的程序解決具體問題
情感態(tài)度與價(jià)值觀:
體會用結(jié)構(gòu)化方法解決數(shù)學(xué)問題的便捷性
明確結(jié)構(gòu)化在程序設(shè)計(jì)中的重要作用
激勵(lì)嘗試 使用多種方法解決問題,明確實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)
培養(yǎng)良好的編程習(xí)慣和態(tài)度,增強(qiáng)集體觀念,在合作學(xué)習(xí)時(shí),尊重別人的意見和勞動,培養(yǎng)學(xué)
2、生相互協(xié)作的集體精神。
教學(xué)重點(diǎn):
理解程序設(shè)計(jì)的分支結(jié)構(gòu)基本思想
教學(xué)難點(diǎn):
分支結(jié)構(gòu)實(shí)現(xiàn)語句的格式和功能
編寫簡單的程序的過程
教學(xué)過程:
知識點(diǎn)
必須落實(shí)的要點(diǎn)
選用例題、練習(xí)
例題、練習(xí)處理
分支
結(jié)構(gòu)
知識點(diǎn)
l 分支結(jié)構(gòu):根據(jù)給定條件是否成立而決定執(zhí)行不同步驟的算法結(jié)構(gòu)。
l 分支的條件設(shè)定
l 判斷框及規(guī)范使用
l 基本模式:
? 雙分支結(jié)構(gòu):根據(jù)給定條件是否成立,分別執(zhí)行不同語句塊的分支結(jié)構(gòu)。
? 單分支
3、結(jié)構(gòu):當(dāng)給定條件成立時(shí),執(zhí)行指定的語句塊,給定條件不成立時(shí),直接退出的分支結(jié)構(gòu)。
l 流程圖規(guī)范畫法:
? 流程線,走直角,自上而下。
? 雙分支結(jié)構(gòu)中,條件判斷的是、非結(jié)果左右分列;單分支結(jié)構(gòu)中,條件判斷成立時(shí),往下執(zhí)行預(yù)定步驟,否則跳過預(yù)定步驟。
? 無論單、雙分支都一定有判斷框和匯聚點(diǎn),判斷框是選擇的開始,匯聚點(diǎn)是選擇的結(jié)束。
? 判斷框有一個(gè)入口,兩個(gè)出口,而分支結(jié)構(gòu)只有一個(gè)入口,即判斷框的入口,一個(gè)出口,即匯聚點(diǎn)的出口。
l 分支嵌套
【例
4、1】舉生活中需要作判斷與選擇的實(shí)例,例如上完體育課,如果是上午最后一節(jié),下課后去食堂吃飯;否則,進(jìn)教室上課。
【例2】打印出從鍵盤輸入的兩個(gè)不相等的數(shù)中較大的數(shù)。(雙分支結(jié)構(gòu))
拓展練習(xí)題:
【練習(xí)1】求分段函數(shù)值
x2 x>3
5、
y=
2x+1 x<=3
學(xué)生可能在繪制流程圖時(shí)將“輸出y的值”這一個(gè)輸出框繪制兩次,分別出現(xiàn)在不同的分支中,要注意強(qiáng)調(diào)分析題目的會聚點(diǎn)在何處,規(guī)范學(xué)生的畫法。同樣在程序代碼中的語句“Print y”也無需出現(xiàn)在分支結(jié)構(gòu)的語句塊中。在分支結(jié)構(gòu)的最初幾節(jié)課中教師應(yīng)注意規(guī)范學(xué)生的畫法和寫法。
【練習(xí)3】輸入一個(gè)數(shù)到變量a,輸出它的絕對值(不用絕對值函數(shù))。
【例4】輸入兩個(gè)不相等的數(shù)a,b,比較大小,將大數(shù)放在a中,小數(shù)放在b中,然后輸出a,b。(單分支結(jié)構(gòu))
【例5】某
6、超市促銷蘋果,購買一斤蘋果,為每斤3元,購買5斤以下每斤原價(jià);超過5斤部分每斤打8折,輸入購買的斤數(shù),輸出應(yīng)付款額。(雙分支結(jié)構(gòu))
【例6】分段函數(shù)問題。(分支嵌套)
1 (x>0)
y= 0 (x=0)
-1 (x<0)
【例7】購買地鐵車票:乘1-4 站 3元/位;5-9站 4元/位;9站以上5元/位;輸入人數(shù)person、站數(shù)n,輸出應(yīng)付款pay。
7、
拓展練習(xí)題:
【練習(xí)1】某手機(jī)話費(fèi)套餐規(guī)定:每月60元,可通話300分鐘,超過300分鐘的部分,另按每分鐘0.4元計(jì)算。鍵盤輸入當(dāng)月通話時(shí)間(分鐘),計(jì)算當(dāng)月實(shí)際需付的手機(jī)費(fèi)。如果輸入的通話時(shí)間小于0,則應(yīng)輸出“輸入數(shù)據(jù)有誤”的提示信息。
【練習(xí)2】輸入一元二次方程ax2+bx+c=0的系數(shù)a、b、c(a<>0),計(jì)算一元二次方程的根。
【例8】輸入三個(gè)不相等的數(shù)a,b,c ,將最大數(shù)賦值給變量max并輸出。
教師在講述本例題時(shí),可以適當(dāng)復(fù)習(xí)前一部分的邏輯表達(dá)式,
8、提示學(xué)生用邏輯表達(dá)式來作為分支的判斷條件。
學(xué)生在思考本題時(shí)可能會出現(xiàn)一些錯(cuò)誤:
1、 用算法1可能會出現(xiàn)在嵌套分支中的ELSE語句處累贅出現(xiàn)判斷語句。
2、 用算法2的同學(xué)要注意他們在嵌套分支中的語句是否完整,可能會出現(xiàn)漏寫,由于比較多的嵌套語句,還要注意語句書寫的正確,首尾呼應(yīng)。
3、 算法3學(xué)生不容易想到,但卻是最精煉的一種算法,可以嘗試提示不用嵌套結(jié)構(gòu)完成本題。但往往學(xué)生也會出現(xiàn)條件重復(fù)判斷的錯(cuò)誤。
【例9】輸入一個(gè)三位數(shù)的整數(shù),將數(shù)字位置重新排列,組成一個(gè)盡可大的三位數(shù)。例如:輸入2
9、13,重新排列可得到盡可能大的三位數(shù)是321。
本例題是對學(xué)生思路的一種拓展,需要結(jié)合前面學(xué)習(xí)的函數(shù)與運(yùn)算符,如mod運(yùn)算符 和 int函數(shù)。教師可以提示學(xué)生這些運(yùn)算符和函數(shù)的功能。編程的時(shí)候注意IF和END IF語句的格式與規(guī)范,不要因?yàn)榍短?,出現(xiàn)遺漏語句的錯(cuò)誤。始終強(qiáng)調(diào)用縮進(jìn)與對齊可以規(guī)范書寫格式,養(yǎng)成良好的編程習(xí)慣,避免錯(cuò)誤。
【例1】從現(xiàn)實(shí)生活中引入需判斷的實(shí)際問題,此例目的是引出雙分支結(jié)構(gòu),出示雙分支流程圖。
流程圖:
從例題中引出分支結(jié)構(gòu)的概念:根據(jù)給定條件是否成立而決定執(zhí)行A或B框中的算法步驟,與順序結(jié)構(gòu)不同,執(zhí)行到分支
10、結(jié)構(gòu)時(shí),在兩條可能的路徑中,根據(jù)條件是否成立而選擇其中一條執(zhí)行。任何一種高級語言都有相應(yīng)的IF 語句實(shí)現(xiàn)分支結(jié)構(gòu)。IF 語句的一般格式:
IF <條件> THEN
<條件成立執(zhí)行的語句塊>
ELSE
<條件不成立時(shí)執(zhí)行的語句塊>
END IF
教師在講述分支結(jié)構(gòu)語句時(shí),一定要強(qiáng)調(diào)IF和END IF的對應(yīng),學(xué)生容易在書寫時(shí)遺漏END IF。同時(shí)在本節(jié)課開始要強(qiáng)調(diào)分支結(jié)構(gòu)中語句塊采用縮進(jìn)方法書寫,養(yǎng)成良好的編程書寫規(guī)范,可以減少錯(cuò)誤。
【例2】引出單分支結(jié)構(gòu),并出示單分支流程圖。
流程圖:
從例題中引出單分支結(jié)構(gòu),根據(jù)給定條件,
11、當(dāng)條件不滿足,不需要執(zhí)行任何操作。單分支的語句格式:
IF <條件> THEN
<條件成立執(zhí)行的語句塊>
END IF
討論單、雙分支結(jié)構(gòu)的區(qū)別和聯(lián)系。這時(shí)要注意兩種結(jié)構(gòu)的規(guī)范畫法。
【例2】理解條件與結(jié)果之間的對應(yīng)關(guān)系
l 分析問題:
? 輸入什么數(shù)據(jù)?(輸入兩個(gè)不相等的數(shù),分別存放在變量a,b中)
? 處理什么問題?(比較a,b的大小,找出較大的一個(gè)數(shù))
? 輸出什么數(shù)據(jù)?(較大的那個(gè)數(shù))
l 設(shè)計(jì)算法:
比較變量a與變量b的大小,如果a大于b,則輸出變量a的值;否則,輸出變量b的值。
l 流程圖:
(學(xué)生可能不一
12、定將判斷條件寫成a>b,相應(yīng)的分支語句也要變化。)
? 改變條件的寫法,或改變是否(T、F)的位置,理解判斷條件的寫法是很重要的,它與結(jié)果之間有聯(lián)動性。
? 流程圖:
(注意判斷條件的寫法,是根據(jù)分段函數(shù)的定義來確定的。)
Print y
l 流程圖:
(學(xué)生可能會在流程圖的畫法上出現(xiàn)錯(cuò)誤,鞏固單分支結(jié)構(gòu)的規(guī)范畫法。)
【例4】為后續(xù)的三數(shù)比大小做準(zhǔn)備。
l 分析問題:
? 輸入什么數(shù)據(jù)?(從鍵盤輸入兩個(gè)不相等的數(shù),分別存放在變量a、b中)
? 處理什么問題?(比較a、b的大小,把大的數(shù)
13、放入變量a,小的數(shù)放入變量b)
? 輸出什么數(shù)據(jù)?(變量a、b的值)
l 設(shè)計(jì)算法:
根據(jù)題意,判斷變量a與變量b的大小,若變量a的值大于變量b的值,則直接輸出變量a和變量b的值,否則交換變量a與變量b的值,然后輸出。用單分支結(jié)構(gòu)實(shí)現(xiàn)。
(學(xué)生可能會遺忘交換兩個(gè)變量值的典型算法,教師可以在本例題中提醒學(xué)生。)
【例5】注意表達(dá)式寫法。
l 分析問題:
? 輸入什么數(shù)據(jù)?(從鍵盤輸入購買的斤數(shù)weight)
? 處理什么問題?(按規(guī)定計(jì)算應(yīng)付款額pay)
? 輸出什么數(shù)據(jù)?(應(yīng)付款額pay)
l 設(shè)計(jì)算法:
? 判別蘋果的斤數(shù)是否超過5斤,如果小于等于5斤,則pay=wei
14、ght*3;否則pay=3*5+(weight-5)*3*0.8。
? 容易疏忽的地方
分支的會聚點(diǎn),輸出應(yīng)付款額。
l 流程圖:
從本題開始,流程圖中對分支條件的判斷結(jié)果用T和F表示,其中的T就是原來的“是”,F(xiàn)就是“否”。教師可以讓學(xué)生用這種方式來繪制流程圖。
【例6】分段函數(shù)學(xué)生容易理解,條件顯而易見,可以用數(shù)軸的辦法,讓學(xué)生觀察數(shù)值區(qū)域,選擇從大到小,或從小到大的判斷方法,用分支嵌套來實(shí)現(xiàn)。
流程圖:
【例7】分支嵌套學(xué)會劃分條件。
l 分析問題:
? 輸入什么數(shù)據(jù)?(輸入乘
15、車的人數(shù)person與乘車的站數(shù)n)
? 處理什么問題?(根據(jù)n范圍,計(jì)算應(yīng)付款pay)
? 輸出什么數(shù)據(jù)?(應(yīng)付款pay)
l 設(shè)計(jì)算法:
最重要的是判斷條件的劃分,切入點(diǎn)用哪個(gè)數(shù)值,選擇一個(gè)數(shù)據(jù)點(diǎn),進(jìn)行條件的劃分。
l 教學(xué)建議:
請同學(xué)討論并思考在分支結(jié)構(gòu)解決問題的關(guān)鍵是什么?教師在學(xué)生劃分完條件后,讓學(xué)生進(jìn)行交流,并總結(jié)不管先判斷哪個(gè)條件,后判哪個(gè)條件,都要看到條件不成立時(shí)隱含著的條件,判斷過的無需反復(fù)進(jìn)行判斷,但也不要漏掉哪段范圍,尤其是一個(gè)個(gè)的邊界值。
l 總結(jié):
條件的劃分是關(guān)鍵的,條件之間應(yīng)做到不重復(fù)、不遺漏。
l 流程圖:
16、
l 流程圖:
【練習(xí)2】的選用比較接近高一學(xué)生的數(shù)學(xué)知識,既可以鍛煉他們對分支結(jié)構(gòu)的認(rèn)識,又可以實(shí)踐將數(shù)學(xué)問題用計(jì)算機(jī)解決。
l 流程圖:略。
【例8】說明一題多解。
算法1
l 流程圖:
算法2:抓大放小逐步判斷。
l 部分代碼:
IF a>=b THEN
IF a>=c THEN
max=a
ELSE
max=c
END IF
ELSE
IF b>=c THEN
max=b
ELSE
max=c
END IF
END IF
算法3:擂臺法。
l 部分代碼:
max=a
IF b>max THEN
max=b
END IF
IF c>max THEN
max=c
END IF
算法2、3由學(xué)生自行完成流程圖,然后討論三種算法,得出各自的價(jià)值取向。
【例9】是將函數(shù)的應(yīng)用、數(shù)的大小比較相結(jié)合的一道題目,用以對前面拓展練習(xí)的進(jìn)一步變化,鍛煉學(xué)生思考解決題目、舉一反三的能力。
流程圖:略。
8