資源簡介 做出判斷的分支《選擇結構》教學設計一、學情分析本課教學的對象是高一年級的學生,他們的思維活躍,具有一定的邏輯思維和推理演繹的能力,但歸納總結的能力較弱。在前面的課程中,他們已經掌握了Python的常量、變量、表達式、輸入輸出語句等基本知識,了解程序設計的一般過程。急切地想編寫程序解決生活中更為復雜的實際問題,但是他們現有的知識結構僅限于解決順序結構的問題,將實際問題轉化為Python程序的能力也有待提高。二、學習內容分析《 選擇結構》是教育科學出版社《信息技術必修1數據與計算》第二章《編程計算》中第二節做出判斷的分支。任何規范的程序都可以分解為三種基本結構,即順序結構、選擇結構和循環結構,教材的前一節介紹了順序結構程序設計。選擇結構是用于判斷給定的條件,根據判斷的結果控制程序執行流程,它分為單分支、雙分支及多分支選擇結構,不同的分支結構有不同的語法格式和適用場合。牢固掌握選擇結構程序設計,是學習程序設計的基本要求,是學會編寫結構清晰、易讀易懂的程序的前提。三、教學目標1、掌握選擇結構的基本格式,理解選擇結構的執行過程。2、能根據問題建立合適、正確的“條件”,利用選擇結構解決實際問題。3、領悟選擇結構的思想,體驗選擇在生活實際中的應用。四、教學重難點教學重點:選擇結構的基本格式;利用選擇結構解決實際問題。教學難點:選擇結構的嵌套。五、教學策略本課教學采用了案例模擬教學法。通過呈現問題、觀察代碼、模仿嘗試、歸納小結、問題解決、拓展應用、總結提升等環節,設計了遞進式的學習活動。通過“比較兩個數的大小”“出租車計費器”“月餅促銷”“計算三角形面積”“BMI等級的判斷”等程序的完善,讓學生在一個個問題的解決中,層層深入的認識選擇結構。學生在模仿中,通過對多個“個”的嘗試,找出“個”背后“類”的規律性問題,歸納出選擇結構的一般格式,實現從“個”到“類”的提升。這樣的設計有助于學生從整體上認識選擇結構,并不斷向縱深發展。同時,真實的問題情境,有效激發學生的學習興趣,讓學生積極思考、主動建構,獲得程序設計的成就感。六、教學過程(一)呈現代碼運行上節課編寫的“計算兩個數的商”程序。x=int(input("請輸入被除數:"))y=int(input("請輸入除數:"))q=x/yprint("商為:",q)分析程序的漏洞:當除數為0時,程序提示出錯,說明這樣的程序是不完善的。實際上,在除數不為零的情況下,才能計算它們的商,否則應提示“除數為零”。用程序來描述就是:if y!=0: q=x/y print("商為:",q)else: print("除數為零")小結:根據條件判斷的結果,選擇執行不同語句的結構,稱為選擇結構。設計意圖:從上一節課的順序結構程序引入,學生通過觀察分析,發現其中的If語句結構起著引導程序走向的作用。這樣的設計使得學生的學習并非是被動的接受,而是一個以已有知識經驗為基礎的主動建構過程。(二)模仿嘗試活動1:模仿上例完善程序,嘗試解決下面兩個問題。(1) 輸入兩個數x和y,比較他們的大小,使得x大于y。x = int(input("輸入x的值:"))y = int(input("輸入y的值:"))if : t = x x = y y = tprint("x的值為:",x)print("y的值為:",y)(2) 出租車計費程序,三公里(含)以內起步價9元,超出三公里的部分每公里2.4元。s =float(input("輸入里程數:"))if s<=3: y=9else: print("價格為:",y,"元。")設計意圖:通過模仿,完善兩個半成品程序,進一步深化對選擇結構的認識。有目的的將部分核心代碼留空,讓學生將有限的注意力集中到核心問題的解決上,做到“有的放矢”;另一方面,關鍵代碼的填寫可以為學生理解程序提供支架,降低活動的難度。(三)歸納提升選擇結構根據條件判斷的結果控制程序的走向,不同的問題可能有不同的條件判斷,但If語句的基本格式是固定的:單分支選擇結構(如圖1):if 條件: 語句或語句組雙分支選擇結構(如圖2):if 條件: 語句或語句組1else: 語句或語句組2 圖1 單分支選擇結構 圖2 雙分支選擇結構小結:單分支的選擇結構,當條件為真時才執行指定語句,否則跳過。雙分支的選擇結構根據條件是否成立,程序選擇執行相對應的語句,然后執行選擇結構后面的語句。設計意圖:通過適時地歸納總結,讓學生在對選擇結構有了感性認識的基礎上,系統地認識單分支和雙分支選擇結構的一般格式,并借助流程圖分析選擇結構的執行過程,幫助學生建構清晰而完整的知識框架,這將為后面的學習打下扎實的基礎。(四)問題解決活動2:利用單分支和雙分支選擇結構,完善程序,解決問題。已知三角形的三條邊a,b,c,求三角形的面積(判斷三條邊是否構成三角形的條件為:任意兩邊之和大于第三邊)。import matha=int(input("請輸入三角形一邊a:"))b=int(input("請輸入三角形一邊b:"))c=int(input("請輸入三角形一邊c:"))p=(a+b+c)/2#如果輸入的三邊值(a,b,c)的任意兩邊之和大于第三邊,則能夠構成三角形計算其面積。#否則提示用戶“不能構成三角形”。 小結:條件一般為關系表達式,如活動1中的兩個程序,以及活動2中的程序1;也可為邏輯表達式,如活動2中的程序2。設計意圖:活動2在學生對雙分支If語句有了較為清晰的理解之后實現一個完整的應用,學生要考慮的不再只是選擇結構中各個分支的內容,而要站在一個更高的層面考慮整個選擇結構的設計,在思維深度上與前面的活動呈遞進關系。同時,此活動的兩個問題分別通過關系表達式和邏輯表達式實現條件判斷,幫助學生進一步拓展對條件表達式的認知。(五)拓展應用活動3:身體質量指數(BMI)是目前國際上常用的衡量人體胖瘦程度的標準,WHO組織設定中國人的參考標準為:BMI<18.5表示偏瘦;BMI介于18.5~23.9 表示正常;BMI>=23.9表示偏重。借助數軸(如圖3)分析問題,形成算法:圖3 BMI指數的等級范圍(1)先判斷x<18.5,成立則輸出“偏瘦”(2)否則判斷x<23.9,成立則輸出“正常”,否則輸出“偏重”w=float(input("請輸入體重(公斤):"))h=float(input("請輸入身高(米):"))bmi=w/h/hif bmi<18.5: print("偏瘦")else: 小結:在第一次判斷的基礎上,再次進行判斷。這種在一個If語句的內部又出現了另一個If語句,即稱為If語句的嵌套。實際上,Python對于程序有多個分支的問題,有一種專門的If語句形式簡化嵌套的問題:多分支選擇結構:if 條件1: 語句塊1elif 條件2: 語句塊2else: 語句塊3多分支的If語句實現BMI值判斷:w=float(input("請輸入體重(公斤):"))h=float(input("請輸入身高(米):"))bmi=w/h/hif bmi<18.5: print("偏瘦")elif bmi<23.9: print("正常")else: print("偏重")小結:多分支選擇結構首先測試條件1,如果它為假,就測試條件2,依次類推,直到找到一個為真的條件,并執行相應的語句塊,如果條件都不為真,執行else后的語句。然后執行選擇結構后面的代碼。設計意圖:通過“數軸分析法”分析出第二次判斷“BMI<23.9”,是以第一次判斷“BMI<18.5”為前提,是在第一次條件判斷為“假”部分再次進行判斷。在完善程序的過程中,幫助學生理解嵌套的緣由,理清嵌套的脈絡。在此基礎上提出多分支If語句,并分析其執行過程。這樣的設計既重過程又重結論,讓學生在問題解決的過程中,輕松愉快地完成知識的建構。(六)思維導圖,復習鞏固。圖4選擇結構思維導圖 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫