學生畫得出流程圖,但一問第三次迭代時變數等於幾就停手。這一堂要把畫圖變成可以逐步執行的指令。
本堂目標 學生能夠:① 用循序、選擇、迭代三種結構把文字題拆成步驟;② 用正確符號畫流程圖,每條出口都標條件;③ 用追蹤表逐步執行,講出每個變數在每次迭代後的值,並判斷會否無窮迴圈。
01 先備知識(開課前 3 分鐘快檢)
以下任何一項未過關,本堂就會卡住,先補該項:
| 技能 |
快檢題 |
過關標準 |
| 變數 |
x ← x + 1 之後,x 的值變成甚麼 |
原本的值加一,右邊先計再寫回左邊 |
| 條件 |
IF 與 WHILE 的分別是甚麼 |
IF 只判斷一次;WHILE 重複直到條件為 false |
| 符號 |
菱形與平行四邊形分別代表甚麼 |
菱形=判斷;平行四邊形=輸入或輸出 |
02 課堂流程(60 分鐘)
| 時間 |
環節 |
導師做什麼 |
學生做什麼 |
| 0–5 分鐘 |
開場快問 |
寫三行虛擬碼,問「邊一行會重複執行」 |
舉手答並指出條件 |
| 5–15 分鐘 |
先備快檢 |
派三條快檢題(賦值、IF 與 WHILE、符號) |
書面作答,即場對答案 |
| 15–37 分鐘 |
三幕講解 |
照腳本講三種結構、符號與線、追蹤表 |
每幕後用一句話複述 |
| 37–49 分鐘 |
題型示範 |
示範四條題,邊做邊畫追蹤表每一行 |
跟抄並自行填最後兩行 |
| 49–55 分鐘 |
獨立練習 |
巡行,只問「這一步執行完,哪個變數變了」 |
做三題並自行對答案 |
| 55–60 分鐘 |
離場檢查 |
收回答案,即場數錯幾題 |
書面作答,不准問同學 |
03 講解腳本(照著說就可以)
第一幕:第一幕:所有程式只有三種結構
「任何程式,拆到最後只有三種:循序、選擇、迭代。先寫虛擬碼,再畫圖。虛擬碼只用五個字:INPUT、SET、IF、WHILE、OUTPUT。寫完之後問自己一句:這幾行有沒有一個出口?如果條件永遠不會變成 false,就是無窮迴圈,這是最常見的失分位。」
「這段虛擬碼的條件幾時會變成 false?如果永遠不會呢?」
第二幕:第二幕:符號與線,出口要標條件
「橢圓代表開始同結束,平行四邊形代表輸入輸出,長方形代表處理,菱形代表判斷。菱形一定要有兩條出口,一條標 Yes 一條標 No,唔標就等於沒答。迭代的回頭箭嘴一定要指回判斷菱形,唔可以指回中間任何一個長方形,否則追蹤表會對不上。」
「菱形有幾條出口?你標了條件沒有?」
第三幕:第三幕:追蹤表,一行只做一步
「追蹤表開四欄:迭代次數、每個變數、輸出、條件結果。每一行只做一步,唔可以跳。最後一行係條件變成 false 嗰行,要寫出來,因為考評就係睇你有無走到出口。效率比較:一千筆資料,線性搜尋最多一千次比較;二分搜尋因為每次減半,只需十次,因為二的十次方是一千零二十四,剛剛夠覆蓋一千。」
「一千筆用二分搜尋要幾次?為甚麼是十而不是八?」
04 必教題型與步驟
| 題型 |
例子 |
步驟 |
答案 |
| 流程圖填空 |
圖中留空兩三個框,要求補上。 |
① 讀上下文找缺的是處理還是判斷;② 判斷框要有兩條出口;③ 補完後口頭執行一次。 |
例:找最大值 → 缺的判斷是「x > max?」。 |
| 追蹤表填值 |
給虛擬碼與初始值,填每次迭代。 |
① 抄初始值;② 一行一步;③ 條件 false 那行也要寫;④ 對照輸出。 |
例:x 由 1 加到 5,追蹤表五行,第六行條件 false。 |
| 虛擬碼改流程圖 |
把文字步驟轉圖。 |
① 標開始;② 輸入;③ 處理;④ 判斷連兩出口;⑤ 輸出與結束。 |
例:輸入三個數找最大 → 三個 IF 或一個迭代。 |
| 效率比較題 |
比較兩個演算法的比較次數。 |
① 寫資料量 n;② 線性為 n;③ 二分為 log2 n 向上取整;④ 用實數例子說明差距。 |
例:n = 1000 → 線性 1000 次,二分 10 次。 |
合理性檢查(一定要教):合理性檢查:一千筆線性搜尋上限 1000 次;二分搜尋需 10 次,因為 2 的 10 次方 = 1024,剛好大於 1000;一百筆則需 7 次。學生若答「二分十次所以快十倍」就要糾正:差別是 1000 對 10,即一百倍。另外追蹤表行數要等於迭代次數加一(最後一行條件 false),少一行即漏了出口。
05 獨立練習三題
| 題目 |
答案 |
想觀察什麼 |
| 寫出「輸入 n,累加 1 到 n」的虛擬碼與追蹤表(n = 4)。 |
SET sum ← 0;SET i ← 1;WHILE i ≤ 4:sum ← sum + i;i ← i + 1。追蹤表 5 行,sum = 10。 |
看 i 有沒有在循環內加一;沒有就是無窮迴圈。 |
| 把同一題畫成流程圖,標明每個菱形的兩個出口。 |
開始 → 輸入 n → sum ← 0、i ← 1 → 判斷 i ≤ n → Yes 累加並 i+1 回頭 → No 輸出 sum → 結束。 |
看回頭箭嘴是否指回判斷菱形,以及 Yes/No 是否都標。 |
| 一千筆資料用線性與二分搜尋,各要多少次比較? |
線性最多 1,000 次;二分 10 次(2^10 = 1024)。 |
看有沒有寫出 2 的次方依據,只寫答案不給理由即不完整。 |
06 學生常見錯誤與糾正句
| 錯誤 |
學生通常這樣寫 |
導師這樣說 |
| 菱形只畫一條出口 |
判斷框只有一條線往下。 |
「判斷一定有兩個結果。Yes 去邊,No 去邊?補上,否則執行不到出口。」 |
| 循環內沒有更新變數 |
WHILE i ≤ 4 裡面沒有 i ← i + 1。 |
「i 永遠係 1,條件永遠 true。這叫無窮迴圈,考試一定扣分。」 |
| 追蹤表跳步 |
一行寫了兩次迭代的結果。 |
「一行只做一步。你想快,但考評睇嘅係邊一步出錯,跳步就追不到。」 |
| 混淆比較次數與資料量 |
答「二分搜尋要一千次」。 |
「一千係資料量,唔係比較次數。二分每次減半,所以係十次。」 |
07 家課建議(直接指到練習卷題號)
08 離場檢查(最後 5 分鐘)
| 題目 |
答案 |
判定 |
| 三種控制結構是甚麼? |
循序、選擇、迭代 |
答不出=重講第一幕 |
| 菱形要有幾條出口? |
兩條,各標條件(Yes/No) |
答不出=重講第二幕 |
| 一千筆資料二分搜尋要幾次比較? |
10 次,因 2^10 = 1024 |
答不出=重講第三幕 |
09 導師常問
這一章適合哪個年級?
中五 ICT 必修部分為主,中四下學期若已教變數亦可先用。
需要電腦嗎?
不需要。紙筆畫圖與追蹤表已足夠,重點是逐步執行。
有無配套練習?
家課欄連到中學 ICT 章節索引,可與程式迴圈一章並排教。
立即免費搵導師導師登記 →
本頁為 TutorZone 導師備課指引,內容由 TutorZone 團隊編寫;題目與流程為原創,並非任何學校或出版社的教材。