資源簡介 學習任務(wù)單課程基本信息學科 信息技術(shù) 年級 高二 學期 春季課題 棧學習目標1. 能夠根據(jù)解決問題的需要,從問題中提煉出棧結(jié)構(gòu)。 2. 能夠總結(jié)出棧的特性,領(lǐng)會棧的相關(guān)操作。 3. 通過具體任務(wù)的實踐活動,體驗用棧解決問題的基本流程,逐步形成運用棧結(jié)構(gòu)解決問題 的思維方式和學科方法。課前學習任務(wù)1.列舉生活中體現(xiàn)棧結(jié)構(gòu)的實例。 2.對比隊列結(jié)構(gòu)的特性,說一說棧結(jié)構(gòu)的特性。 3.回顧第一章項目挑戰(zhàn)“用戶角色特征值 ”,閱讀并理解十進制轉(zhuǎn)二進制的 python 程序。 n = int(input("請輸入十進制整數(shù):")) ans="" while n > 0: r = n % 2 ans = str(r) + ans n = n // 2 print("該十進制數(shù)轉(zhuǎn)換成二進制為:" + ans)課上學習任務(wù)【學習任務(wù)一】 將元素“A ”、“B ”、“C ”、“D ”依次入棧、出棧過程,用 python 編程來實現(xiàn)(要求用循環(huán)結(jié)構(gòu))。(while①:) 【學習任務(wù)二】 字母 ABC 按順序入棧,可能的出棧順序有哪些? 【學習任務(wù)三】 用戶角色特征值(十進制)轉(zhuǎn)二進制的過程,從計算過程抽象出棧的結(jié)構(gòu),并用 python 編程 來實現(xiàn)。將加框處缺失的代碼補充完整。 #棧的應(yīng)用:進制轉(zhuǎn)換 stack = [- 1]* 100 top = - 1 n = int(input("請輸入十進制整數(shù):")) x=n % 2 #入棧 ②n=n // 2 while top>=0: print(stack[top],end="") #出棧 ③③【學習任務(wù)四】 判斷一個數(shù)學計算式中的括號(只有小括號)是否匹配。 第一步:抽象與建模 1.計算式中只關(guān)注括號,忽略其他字符。 2.判斷左右括號的數(shù)量與位置時,采用棧結(jié)構(gòu)來設(shè)計。從左往右遍歷,遇到左括號,入棧, 遇到右括號,出棧。有三種情況: 1 ???,出現(xiàn)右括號,不匹配 2 遍歷結(jié)束,棧中還有左括號(棧不空),不匹配 3 遍歷結(jié)束,???,匹配 第二步:設(shè)計算法第三步:編寫程序。根據(jù)代碼注釋,將加框處缺失的代碼補充完整。 st = [""]* 100; top = - 1 #建棧 flag= True #標記是否有不匹配的情況 s = input("輸入計算式:") for i in range(len(s)): #如果遇到左括號 #入棧 #如果遇到右括號 #如果??眨黄ヅ?#設(shè)置 flag 變量為 False ,跳出循環(huán) #如果棧不空 #出棧if top >= 0: #棧中還有左括號 flag = False if flag: print("括號匹配") else: print("括號不匹配") 【拓展任務(wù)】 修改括號匹配程序,嘗試用列表自帶函數(shù)和方法實現(xiàn)棧的操作。 知識鏈接:用列表自帶函數(shù)和方法實現(xiàn)棧 (stacklist[]stacklist.append("A")stacklist.append("B")print(stacklist[1])print(len(stacklist))stacklist.pop()print(len(stacklist)))#建立一個空棧 #字母 A 入棧 #字母 B 入棧 #輸出棧頂元素,為字母 B #輸出棧中元素個數(shù),為 2 #彈出棧頂元素 #輸出棧中元素個數(shù),為 1 ,是字母 A 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫