資源簡介 教學設計課程基本信息學科 信息技術 年級 高三 學期 (秋季)課題 (3.2隊列)教學目標依據解決問題的需要,恰當的選擇數據結構隊列。 通過問題解決,理解隊列的概念、特性及其基本操作 3. 通過項目的實踐活動,體驗用隊列解決問題的基本流程,逐步形成運用隊列結構解決問題的思維方式和學科方法。教學內容教學重點: 通過問題解決,理解隊列的概念、特性及其基本操作。教學難點: 體驗用隊列解決問題的基本流程,逐步形成運用隊列結構解決問題的思維方式和學科方法。教學過程情境導入 導入1:PPT展示學生在食堂買飯時的有序排隊圖(圖1)、在旅游景點入口處的排隊圖(圖2)、醫院里的叫號系統(圖3)。 教師提問:生活中的排隊問題(前兩幅圖)與我們今天要學習的隊列(圖3)有什么關系呢?------用計算機來解決生活中隊列的問題。 【設計意圖】用生活中排隊的圖片,吸引學生參與課堂,感知生活中的隊列的使用,引出隊列結構,引導他們建立用計算機解決生活中的排隊問題的思維,導出課題。 知識新授 1.隊列的概念: 隊列是一種 的線性表,允許插入的一端稱為 ,允許刪除的一端稱為 。隊列中的數據元素稱為 。 入隊:在隊列中 一個元素稱為 ; 出隊:從隊列中 一個元素稱為 。 2.隊列的特性: (1)先進先出、后進后出 由隊列的定義可知,隊列具備“ ”的特點。動畫模擬,a1優先入隊,接著a2,a3……an依次入隊;出隊時,隊首元素a1優先出隊,緊接著是a2,a3,…an,隊尾元素an最后出隊。 (2)有限序列性 隊列也是一種 結構,元素個數是有限的。隊列可以是空的,也可以包含多個元素。隊列中所有元素呈線性特征, 元素只有一個后繼點, 元素只有一個前驅點,其他元素既有一個前驅點,又有一個后繼點。 課堂練習:下列事件執行過程與隊列特征不相符的是 ( ) A.在汽車加油站排隊加油時不允許插隊 B.當主機運行速度與打印機的打印速度不匹配時,為打印機設置一個打印數據緩沖區 C.把書疊放成一摞,最底下的書要最后才能拿出來 D.CPU分時系統可以根據用戶請求,按順序快速運行各程序段,實現多用戶“同時”工作的假象 【設計意圖】通過對實際問題的模擬、重要知識的填空,課堂練習的鞏固,加深對隊列特性的理解從而實現知識的內化。 3、隊列的基本操作 (1)、探討活動(學生討論): 問題1:在Python語言中如何表示隊列?___________________________ 問題2:如何描述隊列入隊和出隊過程?_____________________________ (2)、隊列的基本操作 活動1.建隊: 如:有4個字母“A”“B”“C”“D”按序入隊、出隊時,可以創建一個隊列que,長度為5。 初始時,head=tail=0 活動2.入隊(動畫模擬): 原則:頭指針head記錄______位置;尾指針tail記錄____________________位置 重大發現: 接收入隊元素的變量:______________ 隊非空判斷條件:___________________ 隊內元素個數=_____________________ 活動3.出隊(動畫模擬): 出隊時,排在_______的元素依次出隊,_____指針變量依次加1,直至_______時,隊列為空。 每次出隊的元素是:_________________;判斷隊列為空的條件:______________________ 課堂練習(程序填空并輸出最后結果______________): a=["a", "b", "c", "d", "e", "f"] q = [0] * 5 head = tail = 0 for i in range(5): __________________ tail += 1 while head != tail: print(______________, end=" ") head += 1 【設計意圖】本環節是這節課的重點內容,通過設計的三個活動,讓學生通過討論、獨立思考、觀看動畫演示、上機調試程序實踐操作、課堂練習等方法,讓學生理解隊列的基本操作及其實現過程。體驗用隊列解決問題的基本流程,逐步形成運用隊列結構解決問題的思維方式和學科方法。 4、隊列的應用 綜合題.信息的加密:給定一個字符串S1,S2,…..Sn,按如下過程加密:取出第一個字符S1,將第二個字符S2放到字符串的末尾Sn后面,得到字符串S3…..Sn,S2;接著把S3取出,S4放到字符串的末尾S2后面,直到最后一個字母Sn被取出。這些字母按取出的順序形成一個新的字符串,稱為密串,請編寫一個加密程序,輸入一個字符串(長度小于等于100),輸出該字符串的密串。 抽象與建模 思考:加密的過程,符合什么數據結構的特征? (2)算法分析:以字符串“STRING”為例 ①將字符串各字符依次入隊,得到隊列,tail值為6,head值為0。 ②加密過程。先取出隊首元素“S”,并輸出,同時head值加1,記錄新的隊首元素“T”所在的位置。再取出隊首元素“T”,并把該元素加入隊尾,head值、tail值均加1。 ③重復操作②,直至隊列為空。 (此過程用動畫演示,同時教師講解,) (3)算法實現,在劃線處填入正確的語句 s=input("請輸入字符串:") print("加密后的串為:") que=[""]*100 head=0 tail=0 for i in range(len(s)): #把原串全部壓入隊列 print(que) while : print(que[head],end="") head+=1 if head 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫