/tutor-prep-s5-ict-programming-arrays-functions/
/tutor-prep-s5-ict-programming-arrays-functions/
一般查詢: info@TutorZone.com.hk
辦公時間: 星期一至六 - 上午 9 時至下午 6 時
WhatsApp 星期一至日 - 24 小時
人手接聽: +852 6828 1809
即時客服: +852 9061 3106

DSE ICT|程式設計 備課指引(導師用)|陣列索引、函數重用、線性與二分搜索、除錯三步

DSE ICT|程式設計 備課指引(導師用)|陣列索引、函數重用、線性與二分搜索、除錯三步

  • 2026-11-02

學生寫得出 for 迴圈,但一問「陣列第 3 個元素是邊個」就由 1 開始數。這一堂用 5 個分數做同一份數據,把索引、函數與搜索次數綁在同一條可數的線上。

本堂目標 學生能夠:① 用由 0 開始的索引取出陣列元素,並講出越界會發生甚麼事;② 把重複程式碼改寫成一個有參數的函數,並講出傳值與傳參考的分別;③ 在 5 個元素的陣列上講出線性搜索最壞要 5 次比較、二分搜索最壞只要 3 次,並用三步法找出程式的錯。

01 先備知識(開課前 3 分鐘快檢)

以下任何一項未過關,本堂就會卡住,先補該項:

技能 快檢題 過關標準
變數 一個變數可以同時存幾個值 一個,除非用陣列
迴圈 for i 由 0 跑到 4 會執行幾次 5 次
比較運算 大於與大於等於的分別 是否包含相等

02 課堂流程(60 分鐘)

時間 環節 導師做什麼 學生做什麼
0–5 分鐘 開場快問 黑板寫 42 55 38 61 49,問第 4 個數是邊個 舉手答,講出自己點數
5–15 分鐘 先備快檢 派三條快檢題(變數、迴圈次數、比較運算) 書面作答,即場對答案
15–37 分鐘 三幕講解 照腳本講陣列與索引、函數與參數、搜索與除錯 每幕後用一句話講出「呢個數字點嚟」
37–49 分鐘 題型示範 示範四條題,每條先寫「數據→步驟→答案」三段 跟抄並自行重寫一次
49–55 分鐘 獨立練習 巡行,只問「呢題問索引定問次數」 做三題並自行對答案
55–60 分鐘 離場檢查 收回答案,即場數錯幾題 書面作答,不准問同學

03 講解腳本(照著說就可以)

第一幕:第一幕:陣列、索引與越界

「陣列是一排有編號的格,編號由 0 開始。黑板五個分數 42、55、38、61、49,索引就是 0 到 4:索引 0 是 42,索引 3 是 61。學生最常錯的是由 1 開始數,於是問『第 4 個』就答 49,其實索引 3 才對應第四個。講清楚三個數字:元素總數 5、最大索引 4、越界就是用了索引 5 或以上。第二層是陣列的用途:同一份數據要做總和、平均、最大最小,用陣列加一個迴圈就搞定,總和 245、平均 49.0、最大 61 在索引 3、最小 38。第三層是邊界條件:寫迴圈時 i 由 0 去到 n-1,寫成 i<=n 就會讀到不存在的格,程式可能直接崩或者讀到垃圾值——這一點要學生自己講一次。」

「如果程式用索引 5 去讀五個元素的陣列,會發生咩事?為咩?」

第二幕:第二幕:函數、參數與重用

「函數係一段有名嘅程式,可以反覆叫。未用函數之前,同一個平均計算可能要抄 12 行;寫成函數之後,主程式只剩 5 行:準備數據、叫函數、印結果。要學生明白兩件事:第一,參數係送入去的資料,回傳值係送出嚟的答案;第二,函數入面改嘅區域變數唔會影響出面,除非你傳嘅係整個陣列(傳參考)。用數字講好處:由 12 行減到 5 行,即省 7 行;要改公式只需要改一個地方,唔會漏改。第三層係命名與職責:一個函數只做一件事,叫 average(marks) 就唔應該同時印表,否則測試唔到。」

「點解改公式嘅時候,用函數會比複製貼上安全?」

第三幕:第三幕:搜索、次數與除錯三步

「搜索要講次數,唔係只講『搵到』。5 個元素,線性搜索由頭掃到尾,最壞要 5 次比較;二分搜索每次砍一半,最壞 3 次就夠,因為 2 的 3 次方是 8,已經大過 5。但二分搜索有前設:數據要先排序,未排序就亂用一定錯。第三層係除錯三步:一、重現錯誤並寫低輸入;二、在關鍵位置印中間值,睇邊一步開始唔對;三、改一處、再跑一次,唔好一次改五樣。用最大值的例子:如果程式答 49,就在迴圈印 i 同 marks[i],會見到比較條件寫成小於,於是永遠留住最後一個值。」

「二分搜索快咁多,係唔係所有情況都應該用?」

04 必教題型與步驟

題型 例子 步驟 答案
索引追蹤題 marks = [42,55,38,61,49],問 marks[3] 的值。 ① 由 0 開始數;② 數到第 4 個;③ 寫出值;④ 講明不是由 1 開始。 例:61(索引 3)。
總和平均題 同上陣列,求總和與平均。 ① 迴圈累加;② 除以元素數;③ 平均保留一位小數;④ 對照合理範圍。 例:總和 245、平均 49.0。
搜索次數題 5 個已排序元素,線性與二分搜索最壞各幾次比較? ① 線性=元素數;② 二分=ceil(log2 n);③ 講明二分要先排序;④ 寫單位「次比較」。 例:線性 5 次、二分 3 次。
除錯題 程式求最大值卻回傳 49,找出錯誤。 ① 重現並寫低輸入;② 印中間值;③ 指出比較符號錯;④ 改一處再跑。 例:條件用了小於,應改為大於。
合理性檢查(一定要教):合理性檢查:索引 5 才是第五個元素,答 marks[5] 就是越界。總和 245 要對得上逐個加,平均 49.0 一定落在最小 38 與最大 61 之間,若算出的平均大過 61 就是除錯數。二分搜索 3 次要對得上 2 的次方關係,答 1 次就係把 n 當成 1。函數改寫後行數由 12 減到 5 是省 7 行,唔可以寫成「省一半」而無計算。除錯只改一處,一次改多處就無法判斷邊個修改有效。

05 獨立練習三題

題目 答案 想觀察什麼
寫出讀取陣列最後一個元素的索引式。 marks[4],即長度減一。 看有沒有寫成 marks[5]。
把三段重複的平均計算改寫成函數,講出參數與回傳值。 參數是陣列,回傳值是平均數;主程式只叫一次。 看有沒有把印表動作放入函數。
5 個元素中找 61,線性搜索要幾次比較? 4 次,因為 61 在索引 3,由頭數起第 4 個。 看有沒有答成 1 次。

06 學生常見錯誤與糾正句

錯誤 學生通常這樣寫 導師這樣說
索引由 1 開始 答 marks[4] 是第五個元素。 「索引係由 0 起,所以第五個係索引 4,唔係 5。用 5 就係越界。」
搜索次數當答案 答「二分搜索搵到就得,唔關次數事」。 「考題要嘅係比較次數。5 個元素,二分最壞 3 次,因為每次砍一半。」
二分搜索未排序 在未排序陣列上用二分搜索。 「二分搜索前設係已排序。未排序就要先 sort,唔係就會漏搵。」
函數副作用 函數同時計算又印表又改全域變數。 「一個函數做一件事,測試先有意義。印表留返主程式做。」

07 家課建議(直接指到練習卷題號)

08 離場檢查(最後 5 分鐘)

題目 答案 判定
五個元素的陣列,最大索引係幾多? 4 答不出=重講第一幕
函數的兩個核心部分是甚麼? 參數與回傳值 答不出=重講第二幕
二分搜索的前設是甚麼? 數據已排序 答不出=重講第三幕

09 導師常問

這一章適合哪個年級?

中五 ICT 程式設計單元;中四學過迴圈之後亦可作延伸。

需要指定用哪種語言嗎?

概念通用;示例用偽碼,學生用 Python 或 Java 都可以對照。

一定要教二分搜索嗎?

DSE 會比較線性與二分搜索的效率,兩者的次數都要講得出口。

立即免費搵導師導師登記 →

本頁為 TutorZone 導師備課指引,內容由 TutorZone 團隊編寫;題目與流程為原創,並非任何學校或出版社的教材。

招募導師及興趣班教練|學術、樂器、體育、藝術、STEM,免費登記,招生與配對交給平台。 了解詳情 →