資源簡介 (共28張PPT)義務教育信息科技(2024)五年級 第1課時第五單元 把數據排列有序五年級下冊第16課 比較交換找最值單元導入排序算法是計算機解決問題的基礎算法之一,可以將無序的數據按照特定順序排列。單元導入在排序過程中,需要對數據進行比較,并根據比較結果來決定是否交換位置,從而實現排序。最終的排列順序可以是升序(從小到大)或降序(從大到小)。12了解在一組無序數中找出最大數的基本步驟,并能辨認其中的循環操作。分析、描述找出最大數的算法,體驗用程序驗證算法的一般過程。學習目標第16課 比較交換找最值日常生活中,我們常常遇到找出最大數的問題,如找出身高最高的人、找出直徑最大的水果、找出某月氣溫最高的一天等。本課通過逐個比較數值大小的方法來找出最大數,認識其中包含的算法。第16課 課堂導入日常生活中,我們常常遇到找出最大數或最小數的問題,如找出身高最高的人、找出直徑最大的水果、找出某月氣溫最高的一天、找出同款價格最低的商品等。情境回顧思考想一想,你還知道哪些與“最值”有關的事情?一 描述找出最大數的算法二 驗證找出最大數的算法學習活動第16課 學習活動 桌上有5個信封,編號分別為1、2、3、4、5,每個信封里裝有一張卡片,卡片上寫著一個大于0的數,請找出其中的最大數。問題提出第16課 學習活動一、描述找出最大數的算法 活動規則:每次只能打開一個信封,查看卡片上的數后把卡片放回原信封內,才能繼續打開另外一個信封,查看卡片上的數。 活動要求:以小組合作探究的方式,找出解決問題的算法,并描述算法的基本步驟。第16課 學習活動一、描述找出最大數的算法問題提出尋找最大數的方法和步驟。用A卡記錄最大值,把信封里的數記錄在A卡上后放回去。依次打開其他信封,比較數值,如果值大就更新。第16課 學習活動一、描述找出最大數的算法問題分析第1步:準備一張新卡片,稱為A卡,用來記錄查找過程中的最大數。第2步:打開第一個信封,查看卡片上的數并記錄在A卡上。第3步:打開第二個信封,查看卡片上的數并與A卡上的數比較,如果這個數比A卡上的數大,那么把A卡上的數更新成這個數,否則不更新。第4步:用同樣的方法,依次打開第三個、第四個、第五個信封,查看卡片上的數,并與A卡上的數比較,決定是否更新A卡上的數。第5步:最后,A卡上的數就是最大數。活動步驟第16課 學習活動一、描述找出最大數的算法 在以上步驟中,從第3步開始就是重復操作。如果首先在A卡上記錄0,第2步就可以是重復操作。可以構建循環結構來描述算法。第16課 學習活動一、描述找出最大數的算法算法涉及搜索、比較、交換等操作。活動步驟算法描述第16課 學習活動一、描述找出最大數的算法 第1步:在A卡上記錄0。第2步:按順序打開一個信封,查看卡片上的數,把這個數與A卡上的數比較。如果比A卡上記錄的數大,那么把A卡上的數更新成這個數,否則不更新。第3步:對每個信封做第2步的操作。第4步:最后,A卡上的數就是最大數。 找出最大數并記錄所在的信封,應該如何改進算法呢?這樣用前面的算法步驟就能完成任務。需要一張新卡片記錄最大值的信封編號。進一步探究第16課 學習活動一、描述找出最大數的算法第16課 學習活動一、描述找出最大數的算法把流程圖補充完整。進一步探究 在尋找最大數的過程中,一共要循環多少次?也就是說,要做多少次“比較兩個數大小”的操作?如果是5 000個數呢?上面的例子里一共5個數,用在A卡上寫0的方法,要循環5次。其實很簡單,循環次數就是數據個數。思考交流第16課 學習活動一、描述找出最大數的算法第16課 學習活動二、驗證找出最大數的算法 在Python中,列表是一種常見的數據序列,用于存儲一系列數據。例如,下面的語句可以創建一個包含5個數的列表。# 創建一個包含5個數的列表box = [24,91,42,108,35]認識列表這個列表的名稱是box,把數據放在方括號 [ ]里。每個數據之間用英文逗號“,”分隔開。第16課 學習活動二、驗證找出最大數的算法列表下標 box [0] box [1] box [2] box [3] box [4]列表數據 24 91 42 108 35 通過下標來引用列表中的數據。 列表下標從0開始,而不是從1開始。也就是列表第一個數據的下標是0,第二個數據的下標是1,依次類推。認識列表第16課 學習活動二、驗證找出最大數的算法 利用len( )函數可以獲取列表中的數據個數。認識列表# 創建一個包含5個數的列表box = [24,91,42,108,35]# 用變量cc保存box列表中的數據個數cc = len(box)其中cc=len(box)是賦值語句,表示把len()獲取的box列表的數據個數保存到變量cc中。知識回顧第16課 學習活動二、驗證找出最大數的算法 在Python中,用while循環可以實現算法的循環結構。while循環基本格式如下。 while 判斷條件: 語句組 當循環的次數不確定時,可以根據條件進行判斷。當條件成立時,執行條件后的語句;當條件不成立時,結束循環。運行程序第16課 學習活動二、驗證找出最大數的算法打開找出列表中最大數的程序并運行,分析程序與算法的關系。box = [24, 91, 42, 108, 35]cc = len(box)a = box[0]i = 1while iif box[i] > a:a = box[i]i = i+1print('最大數為:', a)#創建一個包含5個數的列表#用cc保存box列表中的數據個數#用a保存最大數,初始值設為列表第0項#循環變量初始值設為1#用循環結構逐個比較列表中的數#如果當前數大于a的值#更新a的值#循環控制變量增加1,繼續循環#輸出找到的最大數分析程序第16課 學習活動二、驗證找出最大數的算法 在while循環中,用變量a保存最大數,并用條件語句if來比較。當前數box[i]的值是否大于已經找到的最大數a。如果是,就將a的值更新為box[i]的值。這樣,通過循環操作逐個查找,找出列表中的最大數并更新到變量a中。 第16課 學習活動二、驗證找出最大數的算法分析程序 控制變量i,從1變化到等于cc的值(數據個數)時,結束循環。循環結束后,輸出變量a的值,就是這個列表中的最大數。 分析循環次數發現,程序進行了4次循環,比前面活動中少循環一次,這是為什么呢?觀察發現,前面活動中先在A卡上記錄0,再進行數據循環比較,而程序實現時,先在變量a中保存第一個數,再用這個數與第二個數比較,因此,可以減少一次循環。 1.在無序數中找出最值的算法,在生活中有很多應用案例,只要細心觀察,就會發現它們的存在和所起的作用。 2.尋找最值的算法主要采用了記錄、比較、交換以及循環判斷等操作,這也是對數據進行比較運算的基本方法。第16課 課堂總結隨意列舉一些無序的數,要從中找出最小數,應該如何操作?嘗試用程序驗證。 第16課 拓展與提升下課啦! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫