清單數字排序
這篇文章會介紹,如何在 Scratch 裡使用函式、變數、邏輯判斷...等積木,搭配清單的操作,實作一個可以將清單裡的數字,由大到小或由小到大進行排序的功能。
積木程式原理
點擊貓咪角色,從左側積木清單裡,新增一個變數 n 和一個清單 list,將 list 勾選顯示在舞台中。
編輯點擊綠旗時,清空 list 清單的內容,使用重複十次積木,每次重複將 1~10 的隨機數加入 list,完成後點擊綠旗,list 清單裡就會出現十個隨機數字。
新增一個名為「小到大」的函式,勾選「執行完畢再更新畫面」。
透過下圖,了解從大到小排序的原理:
- 依序判斷清單中每個項目 n。
- 如果該項目 ( n ) 的數值,大於後一個項目 ( n+1 ),就將該項目,移動到 n+2 的位置。
根據排序原理,編輯「小到大」的函式內容:
- 使用重複積木,清單有幾個項目,就重複幾次 ( 將每個項目都判斷一次 )。
- 每次重複時,將 n 設定從 1 開始。
- 每次重複時,執行另外一個重複積木,重複「清單長度 - 1」次 ( 因為 n 從 1 開始,所以減去 1 )。
- 判斷如果清單的第 n 項大於第 n+1 項,就將第 n 項插入第 n+2 項。
- 接著刪除第 n 項,讓第 n+1 項變成第 n 項。
- 將 n 增加 1。
新增另外一個名為「大到小」的函式,勾選「執行完畢再更新畫面」。
「大到小」函式的內容和「小到大」函式幾乎相同,只有邏輯判斷的地方改成「如果清單的第 n 項小於第 n+1 項,就將第 n 項插入第 n+2 項」。
完成效果
完成後,設定按下鍵盤「向下鍵」時,執行「小到大」函式,設定按下鍵盤「向上鍵」時,執行「大到小」函式,就可以開始執行清單的數字排序。
範例解答
範例解答:清單數字排序
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~