搜索
    上傳資料 賺現(xiàn)金

    4-2基數(shù)排列教案

    • 62 KB
    • 2022-06-20 17:02
    • 292
    • 3
    • 艾爾開西
    加入資料籃
    立即下載
    4-2基數(shù)排列教案第1頁
    1/4
    4-2基數(shù)排列教案第2頁
    2/4

    高中信息技術(shù)教科版 (2019)選修1 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)4.2 基數(shù)排序教案設(shè)計

    展開

    這是一份高中信息技術(shù)教科版 (2019)選修1 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)4.2 基數(shù)排序教案設(shè)計,共4頁。教案主要包含了考勤,課前測評,引入,總結(jié)等內(nèi)容,歡迎下載使用。
    課堂教學(xué)設(shè)計課 題4-2基數(shù)排列課時安排1課型 素養(yǎng)目標課程標準要求:1.理解隊列的概念及其特征。理解基數(shù)排序的基本過程。了解排隊取號模擬系統(tǒng)的基本功能。信息意識:信息意識:能夠根據(jù)解決問題的需要,自覺、主動地尋求恰當?shù)姆绞将@取與處理信息;在合作解決問題的過程中,愿意與團隊成員共享信息,實現(xiàn)信息的更大價值。計算思維:針對給定的任務(wù)進行需求分析,明確需要解決的關(guān)鍵問題。能提取問題的基本特征,進行抽象處理,并用形式化的方法表述問題。運用隊列結(jié)構(gòu)設(shè)計解決問題的方案,結(jié)合隊列的相關(guān)操作,編程實現(xiàn)。數(shù)字化學(xué)習(xí)與創(chuàng)新:1.理解隊列結(jié)構(gòu)及其現(xiàn)實。 2.熟練運用數(shù)據(jù)結(jié)構(gòu)解決生活中的真實問題,并在此過程中自主或協(xié)作探究;能夠評估常見的數(shù)字化資源與工具對學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的價值,根據(jù)需要合理選擇。信息社會責任:能夠分析數(shù)據(jù)與社會各領(lǐng)域間的關(guān)系,自覺遵守相應(yīng)的理論道德和法律法規(guī)。教學(xué)重點1.理解隊列的概念及其特征。2.理解基數(shù)排序的基本過程。教學(xué)難點了解排隊取號模擬系統(tǒng)的基本功能。教學(xué)方法講解法、互動法學(xué)習(xí)方法互動、討論教學(xué)過程個別化教案、考勤。二、課前測評。、引入日常生活中,我們經(jīng)常會遇到排隊的情況,如在食堂排隊買飯、在電影院排隊買票、在超市排隊結(jié)賬等。排隊的過程會形成一個隊列,排在隊列最前面的優(yōu)先處理,后來的必須排在隊尾。在計算機解決問題的過程中也經(jīng)常會用到隊列。本節(jié)主要學(xué)習(xí)隊列的概念及其特征、隊列抽象數(shù)據(jù)類型的定義、隊列的實現(xiàn)方法。任務(wù)一:認識生活中的隊列。  隊列:隊列是一種操作受限的線性結(jié)構(gòu),數(shù)據(jù)元素只能在一端進,在另一端出,且具有先進先出的特征。隊列出現(xiàn)在日常生活各類排隊活動中,如影院排隊入場、商店排隊付款和餐廳排除就餐就時都會形成隊列。另外,計算機科學(xué)中的很多功能,如打印隊列、進程調(diào)度和鍵盤緩沖等也都是利用隊列結(jié)構(gòu)來實現(xiàn)的。       1.本單元通過排隊買票項目,理解隊列結(jié)構(gòu)的基本概念及特征,學(xué)習(xí)隊列的兩種實現(xiàn)方法。隊列(queue)是一種操作受限制的線性結(jié)構(gòu),只允許在表的前端(隊首)進行數(shù)據(jù)元素刪除操作,在表的后端(隊尾)進行插入操作。在隊列中插人一個數(shù)據(jù)元素稱為人隊,從隊列中刪除一個數(shù)據(jù)元素稱為出隊。因為隊列只允許在隊尾插人、在隊首刪除,所以先進入隊列的元素先從隊列中刪除,故隊列又稱為先進先出(First In First Out,F(xiàn)IFO)線性表。隊列抽象數(shù)據(jù)類型:
    為了在程序中使用隊列結(jié)構(gòu)來解決問題,我們需要定義隊列抽象數(shù)據(jù)類型(ADT Queue)。根據(jù)問題解決需要,我們?yōu)殛犃谐橄髷?shù)據(jù)類型定義了如下接口。
    ·Queue():創(chuàng)建一個空隊列,返回值是一個空的隊列。
    ·enQueue(item):將數(shù)據(jù)元素 item添加到隊尾,無返回值。
    ·deQueue():從隊首刪除數(shù)據(jù)元素,返回隊首數(shù)據(jù)元素。
    ·size():返回隊列中數(shù)據(jù)元素的個數(shù)。
    ·isEmptyO:判斷是否為空隊列,返回布爾值。基數(shù):十進制記數(shù)是逢十進一,從零開始計數(shù),數(shù)到十的時候,就要進一位,即變成10,個位數(shù)上是0,十位數(shù)上是1。一個十進制數(shù)的每個數(shù)位上可能的數(shù)字是0,1,2,,9中的某一個。十進制的基數(shù)是10。二進制記數(shù)是逢二進一,從零開始計數(shù),數(shù)到二的時候,就要進一位,即變成10(2)。一個二進制數(shù)的每個數(shù)位上可能的數(shù)字是0,1。二進制的基數(shù)是2。同理,一個N進制數(shù)是逢N 進一,它的基數(shù)是N,采用N個不同的數(shù)字符號來表示。例如,十六進制的基數(shù)是16,采用0~9和A~F這16個符號來記數(shù)。基數(shù)排序的基本思路:
    分發(fā)過程:
    分發(fā)的過程是按照數(shù)據(jù)的某個數(shù)位上的數(shù)字依次把隊列 mainQueue中的各個數(shù)據(jù)分發(fā)到相應(yīng)的基數(shù)隊列中,最先人隊的數(shù)據(jù)處于隊列的隊首位置。
    收集過程:
    收集的過程是按照基數(shù)隊列下標從小到大的順序,將所有基數(shù)隊列中的數(shù)據(jù)移出隊列,放人隊列 mainQueue,最先人隊的數(shù)據(jù)處于隊列的隊首位置。迭代次數(shù):
    因為要從低位到高位對數(shù)據(jù)的每一位進行一輪分發(fā)和收集,所以整個排序過程要進行k次分發(fā)和收集。k是需要排序的所有數(shù)據(jù)中最大值的位數(shù),它可以通過以下表達式得到:K=len(str(max(alist)))排隊取號模擬系統(tǒng):
    餐館排隊取號包括取號和叫號兩個部分。取號就是根據(jù)所選餐桌類型生成排隊號碼等信息將顧客人隊。叫號就是根據(jù)空閑餐桌類型,將排在該餐桌類型隊列隊首的顧客出隊。class Queue:    def __init__(self):        self.items = []    def enQueue(self, item):        self.items.append(item)    def deQueue(self):        return self.items.pop(0)    def isEmpty(self):        return self.size() == 0    def size(self):        return len(self.items)class Guest:  # 客人    def __init__(self, tableType):        self.tableType = tableType                #顧客所選餐桌類型        self.stayTime = random.randrange(20, 60)  #隨機生成顧客用餐時間    def takeTicket(self, number,order, timeTick):   #生成顧客取號信息        self.ticket = '%s%03d 前面還有%d位' % (self.tableType,number,order) #生成排號單        self.tableTypeNum='%s%03d' % (self.tableType,number)   #排隊序號        self.arriveTime = timeTick   #顧客取號時間class Table:  # 餐桌    def __init__(self, id, type):        self.id = id  # 桌號        self.type = type  # 類型'A','B','C',容量分別是(2,4,8)        self.status = 'free'  # 狀態(tài)(free, busy)        self.remain = 0       # 顧客占用時長    def setBusy(self, remain):  # 設(shè)置餐桌狀態(tài)        self.status = 'busy'    #設(shè)置桌子為在用狀態(tài)        self.remain = remain    #設(shè)置占用時長    def tickRemain(self):      # 餐桌用餐狀態(tài)檢測        if self.remain > 0:    #判斷是否還有占用時長            self.remain -= 1   #占用時長減少1        if self.remain == 0:   #判斷占用時長是否為零            self.status = 'free'  #設(shè)置桌子為空閑狀態(tài)class QueueSystem:  # 排號機    def __init__(self):        self.guestQueues = {'A': Queue(), 'B': Queue(), 'C': Queue()}  #顧客隊列        self.guestCount = {'A': 0, 'B': 0, 'C': 0}          #排隊號碼        self.totalWaitTime = 0      #總等待時間        self.totalGuest = 0         #總就餐人數(shù)     def assignTicket(self, guest, timeTick):        # 有顧客來,排隊取號        table = guest.tableType                   #顧客餐桌類型        queue = self.guestQueues[table]           #顧客所排的餐桌隊列        self.guestCount[table] += 1               #生成排隊號碼        guest.takeTicket(self.guestCount[table],queue.size(),timeTick)  #顧客取號        queue.enQueue(guest)                       #顧客入隊        # 顯示信息        print('顧客取號:', guest.ticket,'取號時間:',timeTick)      def arrangeTable(self, table, timeTick):   #叫號函數(shù)        # 有空桌,看看是否有顧客等候        if not self.guestQueues[table.type].isEmpty():            guest = self.guestQueues[table.type].deQueue()    #顧客出隊            table.setBusy(guest.stayTime)                     #設(shè)置就餐狀態(tài)為占用            # 計入等待時間            self.totalGuest += 1                              #累計用餐總?cè)藬?shù)            self.totalWaitTime += timeTick - guest.arriveTime #累計總等待時間            # 顯示信息            print('叫號:', guest.tableTypeNum, '到桌號:', table.id)     def showResult(self, totalTime):        print('*' * 40)        print('本次模擬一共', totalTime, '分鐘')        print('共有', self.totalGuest, '桌顧客用餐')        print('每桌顧客在用餐前平均等待時間為', round(self.totalWaitTime / self.totalGuest), '分鐘')        print('模擬結(jié)束時各隊列情況如下:')        for q in self.guestQueues:           print('桌型:', q, '還有', self.guestQueues[q].size(), '桌顧客在排隊')        print('*' * 40)import random# 變量randomBox用于設(shè)定模擬來客的概率,20%概率2人桌,10%概率4人桌,5%概率8人桌randomBox = [None] * 65 + ['A'] * 20 + ['B'] * 10 + ['C'] * 5# 餐桌設(shè)置,5張2人桌,3張4人桌,2張8人桌tableSetting = 'AAAAAAABBBBC'# 生成餐桌對象列表tableList = [Table(i + 1, tableSetting[i]) for i in range(len(tableSetting))]qsys = QueueSystem()  # 生成一個排號機對象totalTime = 4 * 60  # 模擬時間長度為4小時,最小單位分鐘for timeTick in range(totalTime):    # 1,以設(shè)定概率隨機模擬來客    dice = random.choice(randomBox)    if dice is not None:  # 有客人來        guest = Guest(dice)        qsys.assignTicket(guest, timeTick)  # 顧客取號    # 2,讓餐桌用餐時間減1,查看餐桌是否有空閑    for table in tableList:        table.tickRemain()        if table.status == 'free':            qsys.arrangeTable(table, timeTick)  # 叫號入桌# 顯示模擬統(tǒng)計信息qsys.showResult(totalTime)      、總結(jié)1.理解隊列的概念及其特征。2.理解基數(shù)排序的基本過程。3.了解排隊取號模擬系統(tǒng)的基本功能。     作 業(yè)  設(shè)1.理解隊列的概念及其特征。2.理解基數(shù)排序的基本過程。3.了解排隊取號模擬系統(tǒng)的基本功能學(xué) 教案查閱簽字  

    相關(guān)教案

    粵教版 (2019)必修1 數(shù)據(jù)與計算3.2.2 算法的描述教學(xué)設(shè)計:

    這是一份粵教版 (2019)必修1 數(shù)據(jù)與計算3.2.2 算法的描述教學(xué)設(shè)計

    高中信息技術(shù)教科版 (2019)選修1 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)第3單元 數(shù)據(jù)的排序與查找3.1 迭代與遞歸教案及反思:

    這是一份高中信息技術(shù)教科版 (2019)選修1 數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)第3單元 數(shù)據(jù)的排序與查找3.1 迭代與遞歸教案及反思,共4頁。教案主要包含了考勤,課前測評,導(dǎo)入,新課內(nèi)容,小結(jié)等內(nèi)容,歡迎下載使用。

    高中教科版 (2019)第2單元 線性表及其應(yīng)用2.2 隨機抽取問題教案設(shè)計:

    這是一份高中教科版 (2019)第2單元 線性表及其應(yīng)用2.2 隨機抽取問題教案設(shè)計,共3頁。教案主要包含了考勤,課前3分鐘等內(nèi)容,歡迎下載使用。

    英語朗讀寶
    資料下載及使用幫助
    版權(quán)申訴
    • 1.電子資料成功下載后不支持退換,如發(fā)現(xiàn)資料有內(nèi)容錯誤問題請聯(lián)系客服,如若屬實,我們會補償您的損失
    • 2.壓縮包下載后請先用軟件解壓,再使用對應(yīng)軟件打開;軟件版本較低時請及時更新
    • 3.資料下載成功后可在60天以內(nèi)免費重復(fù)下載
    版權(quán)申訴
    若您為此資料的原創(chuàng)作者,認為該資料內(nèi)容侵犯了您的知識產(chǎn)權(quán),請掃碼添加我們的相關(guān)工作人員,我們盡可能的保護您的合法權(quán)益。
    入駐教習(xí)網(wǎng),可獲得資源免費推廣曝光,還可獲得多重現(xiàn)金獎勵,申請 精品資源制作, 工作室入駐。
    版權(quán)申訴二維碼
    歡迎來到教習(xí)網(wǎng)
    • 900萬優(yōu)選資源,讓備課更輕松
    • 600萬優(yōu)選試題,支持自由組卷
    • 高質(zhì)量可編輯,日均更新2000+
    • 百萬教師選擇,專業(yè)更值得信賴
    微信掃碼注冊
    qrcode
    二維碼已過期
    刷新

    微信掃碼,快速注冊

    手機號注冊
    手機號碼

    手機號格式錯誤

    手機驗證碼 獲取驗證碼

    手機驗證碼已經(jīng)成功發(fā)送,5分鐘內(nèi)有效

    設(shè)置密碼

    6-20個字符,數(shù)字、字母或符號

    注冊即視為同意教習(xí)網(wǎng)「注冊協(xié)議」「隱私條款」
    QQ注冊
    手機號注冊
    微信注冊

    注冊成功

    返回
    頂部
    添加客服微信 獲取1對1服務(wù)
    微信掃描添加客服