氣泡排序法Part 1
氣泡排序法Part 1
*課程內容參考: 康軒113版資訊科技
任務說明: 根據氣泡排序法的規則,完成3個數的排序程式實作。
💡程式說明:
程式開始後產生3個未排序之數字,經過兩兩比較及交換後完成排序。程式分為主程式及副程式兩部分,主程式每輪需進行兩次呼叫"比較與交換"再進入下一輪,直到排序完成。主程式直接呼叫副程式以進入比較與交換。副程式中則是進行兩個數的比較,若前數>後數,則條件成立兩數進行交換,不成立即返回主程式。
以Scratch進行程式設計
🔵建立舞台
加入舞台背景: 下載背景圖片(擇一背景圖下載) ➡️雲端硬碟資料夾
在舞台區上傳已下載之背景圖(新增背景後,可將原空白背景刪除)
進入舞台背景編輯區,將圖片轉成向量圖,進行大小調整
上船舞台背景圖
點選新背景以進行圖片編輯
將圖片切換成向量圖
調整圖片大小以符合舞台背景大小
🔵建立角色: 產生資料與排序
加入新角色: 下載按鈕角色圖片(選擇一個"產生資料/Data"一個"排序/Sort"下載) ➡️雲端硬碟資料夾
在角色區上傳已下載之圖片(新增角色後,可將原小貓角色刪除),角色大小可直接利用角色區的"尺寸"進行調整
依據舞台畫面大小及按鈕實際大小進行調整(直接改變數字即可)
用上傳方式加入新角色,原有之小貓角色可以刪除
直接點選角色後,調整大小
直接點選角色後,調整大小
🟡程式設計: Part 1 --- "排序"角色的程式
💡想想看,你要如何將兩杯飲料的內容物進行交換?
此時,你需要另一個空杯子來進行交換。
❓若換成了兩個數字進行交換呢?
此時我們需要一個"暫存"的位置來幫助完成數字的交換。
圖片來源: 康軒113版資訊科技
⬇️排序角色程式流程,以及需新增之變數、清單或函式
1️⃣程式開始執行(綠旗被點一下)
角色定位
資料數量設定(建立新變數--資料數量)
將資料數量變數設定為"3"
建立新變數
將新變數命名為"資料數量"
將資料數量變數設為"3"
2️⃣當角色被點擊時,將進行前數與後數比較
建立新變數"比較位置"
建立函式積木"比較與交換"(以呼叫副程式)
🔶比較位置的定義請見左下圖
🔶注意: Scratch清單為直式排列(如右下圖),左邊的數字即為其項次順序
Scratch的清單
新變數命名"比較位置"
建立新函式積木
函式積木命名"比較與交換"
接著新增兩個方塊"前數"及"後數"
呼叫"比較與交換"副程式
主程式中進行兩數大小比較(定義位置及呼叫副程式)
3️⃣定義副程式(比較與交換)
建立數字清單
判斷條件(前數是否大於後數)
建立新變數"暫存"
當前數大於後數時,後數先移至"暫存"
前數的數字移至後數位置(替換)
暫存中的數字再移至前數位置(替換)
完成交換
建立一個新清單
將清單命名為"數字清單"
條件判斷:如果數字清單中的前數>後數
建立新變數,以存放後數的數字
新變數命名為"暫存"
判斷式中條件成立時,將後數的數字移至暫存變數
✳️替換1:
將前數數字移至後數位置(將後數項替換為前數項)
替換1:從變數積木拖曳"替換積木",在項次裡分別放入後數與前數
替換2:從變數積木拖曳"替換積木",在項次裡分別放入前數與暫存
✳️替換2:
將暫存數字移至前數位置(將前數項替換為暫存項)
💡將變數條或清單進行顯示或隱藏
🔅隱藏(取消勾選)
比較位置
資料數量
暫存
🔆呈現(勾選)
數字清單
取消勾選變數顯示,舞台上就不會再出現變數值,但清單不可取消,否則看不到數字資料。
舞台畫面如上圖(清單若位置中可自行移動至適當位置)
完整"排序角色"的程式積木及舞台畫面