中三 ICT|演算法與流程圖 備課指引(導師用)|五個條件、六種符號、線性與二分搜尋
- 2026-11-11
學生畫得出流程圖,卻講不出「為甚麼二分搜尋快」;差別不在畫圖,而在肯不肯用比較次數把「快」變成一個數。這一堂把一千筆除以二的次數算出來,之後所有效率題都靠這一條。
本堂目標 學生能夠:① 用輸入、輸出、明確、有限、有效五個條件檢查一段步驟是否算演算法;② 畫出含選擇與迴圈的流程圖,符號用對(起止用橢圓、判斷用菱形、輸入輸出用平行四邊形);③ 算出 1,000 筆資料線性搜尋最壞 1,000 次、二分搜尋最壞 10 次,並講出 100 倍差距來自每次把範圍減半。
01 先備知識(開課前 3 分鐘快檢)
以下任何一項未過關,本堂就會卡住,先補該項:
| 技能 | 快檢題 | 過關標準 |
|---|---|---|
| 次方 | 2 的 10 次方是多少? | 1024,即約一千 |
| 除法與減半 | 1000 連續除以 2,幾次之後少於 1? | 10 次,因為 1024 才剛好超過 1000 |
| 平均數 | 1 到 1000 的中間值大約是多少? | 約 500,線性搜尋平均要掃一半 |
02 課堂流程(45 分鐘)
| 時間 | 環節 | 導師做什麼 | 學生做什麼 |
|---|---|---|---|
| 0–5 分 | 兩個做法 | 寫「在 1 到 1000 找一個數」,叫學生講一個做法,再問最快的方法是甚麼 | 多數答「由頭數落去」,少數答「猜中間」 |
| 5–13 分 | 五個條件 | 用「由頭數落去」逐條對五條件,示範「有限」這一條怎樣被無窮迴圈破壞 | 能指出哪一條被破壞 |
| 13–24 分 | 六種符號與三種結構 | 黑板畫起止、處理、判斷、輸入輸出、流程線、連接點,再畫順序/選擇/迴圈各一例 | 抄符號表並各畫一例 |
| 24–33 分 | 算比較次數 | 帶學生把 1000 連續除 2 十次,寫出 1000、500、250…1,對比線性最壞 1000 次 | 算出 10 次與 100 次差距 |
| 33–40 分 | 四類題練習 | 流程圖除錯、比較次數、演算法設計、pseudocode 轉圖各一題 | 四題都寫出答案與步驟 |
| 40–45 分 | 離場檢查 | 收三條答案,即場標正確/半對/錯 | 交出三條答案 |
03 講解腳本(照著說就可以)
第一幕:第一幕:五個條件是驗身,不是背書
「輸入、輸出、明確、有限、有效。這五個條件不是用來背的,是用來查的。你寫『把資料排好』,這句不滿足『明確』,因為沒講用甚麼方法、每次比較甚麼。你寫『一直做直到正確』,這句不滿足『有限』,因為沒有人保證會停。考試最常考的就是這兩條:一段步驟看似合理,但中間有一個永遠不會結束的迴圈,或者一個沒有定義的判斷。你檢查的時候,逐條問:有輸入嗎?有輸出嗎?每一步是否只有一個解釋?會不會停?用有限的步驟做得到嗎?」
不明確與不有限,是最常被考到的兩個不合格原因。
第二幕:第二幕:流程圖的符號就是題目的得分點
「起止用橢圓、處理用長方、判斷用菱形、輸入輸出用平行四邊形、流程線要加箭頭、跨頁用連接點。學生失分通常不是邏輯錯,是菱形裡寫了一句陳述而不是是非題。菱形裡面必須是可以答是或否的句子,例如『還有未檢查的資料嗎』,兩條出線分別標是與否。迴圈一定要有一條線回到判斷之前,否則就是無窮迴圈。畫完之後用手指沿線走一次,若走到某一步之後再也出不去,就是斷了出口。」
菱形內寫是非題,兩條出線標是與否,迴圈要有一條線回去。
第三幕:第三幕:把「快」變成一個數
「一千筆資料,線性搜尋最壞要比較 1000 次,平均 500 次。二分搜尋每次把範圍減半:1000、500、250、125、63、32、16、8、4、2、1,共 10 次,因為 2 的 10 次方是 1024。1000 除 10 等於 100,即是同一個問題,二分搜尋最壞情況少用 99 次比較。答題時寫『10 次,因為每步減半,2 的 10 次方超過 1000』,才算講到理由;只寫『二分快好多』沒有分。同時要補一句前提:資料必須先排好序,否則二分搜尋用不了。」
每步減半,2 的 10 次方超過 1000,所以最壞 10 次。
04 必教題型與步驟
| 題型 | 例子 | 步驟 | 答案 |
|---|---|---|---|
| 流程圖除錯題 | 一個流程圖的迴圈沒有回到判斷之前,指出問題並修正。 | ① 找所有判斷菱形 ② 檢查每個菱形是否兩條出線 ③ 檢查迴圈是否有回頭線 ④ 指出缺哪一條並補畫 | 迴圈缺少回到條件的流程線,補一條由迴圈體末端指回菱形上方,並確認條件最終會變假 |
| 比較次數計算題 | 1,000 筆已排序資料,二分搜尋最壞要比較幾次?線性搜尋最壞幾次?差幾倍? | ① 寫出每步範圍減半的序列 ② 數到 1 為止的步數 ③ 用 2 的次方核對 ④ 相除求倍數 | 二分最壞 10 次(2 的 10 次方 1024);線性最壞 1000 次;相差 100 倍 |
| 演算法設計題 | 寫出「找出三個數之中最大的一個」的步驟,並畫成流程圖。 | ① 訂輸入三個數 ② 先假設第一個最大 ③ 逐個比較並更新 ④ 輸出最大值 ⑤ 畫成三個框加兩個判斷 | max ← a;若 b > max 則 max ← b;若 c > max 則 max ← c;輸出 max |
| pseudocode 轉流程圖 | 把 total ← 0;for i ← 1 to 10;total ← total + i 轉成流程圖。 | ① 起止框 ② 初始化處理框 ③ 判斷 i 是否大於 10 ④ 迴圈體累加並 i 加一 ⑤ 輸出框 | 初始化、判斷菱形(i > 10?)、累加框、i ← i + 1、回頭線,最後輸出 total |
合理性檢查(一定要教):合理性檢查:2 的 10 次方是 1024,答 1000 就是記錯次方;1000 連續除 2 是 10 次才少於 1,答 100 次就是當成每次減一;線性搜尋最壞是 1000 次不是 10 次,答 10 就是混淆了兩種搜尋;1000 除 10 是 100 倍,答 10 倍就是少一個零。任何「次數」都不應大於資料總數(線性)或少於 1,超出範圍即代表公式或單位錯了。
05 獨立練習三題
| 題目 | 答案 | 想觀察什麼 |
|---|---|---|
| 4,096 筆已排序資料,二分搜尋最壞比較幾次? | 12 次,因為 2 的 12 次方是 4096 | 是否用次方核對而不是硬數 |
| 把「一直加一直到總和大於 100」寫成流程圖,指出哪一格是判斷。 | 菱形「總和 > 100?」,是則輸出,否則回到累加 | 是否兩條出線都有標是與否 |
| 為甚麼未排序的資料不能用二分搜尋? | 因為無法判斷目標在左半還是右半,減半的依據消失 | 是否講到「減半依據」而不是只說「不準」 |
06 學生常見錯誤與糾正句
| 錯誤 | 學生通常這樣寫 | 導師這樣說 |
|---|---|---|
| 把陳述句寫進判斷菱形 | 「菱形裡面寫『檢查資料』。」 | 「菱形要答得出是或否。改成『還有未檢查的資料嗎』,然後兩條出線分別標是與否,題目才走得通。」 |
| 以為二分搜尋每次只減一 | 「二分搜尋最壞 1000 次。」 | 「二分是每次把範圍砍一半:1000、500、250…十步就到 1。你寫 1000 次,等於把二分當成線性。」 |
| 漏掉迴圈的回頭線 | 「畫完累加框就接去輸出。」 | 「累加只做一次就結束,這不是迴圈。要有一條線由累加之後指回判斷,並且每圈把計數加一,否則永遠不會停。」 |
| 講效率不講前提 | 「二分搜尋一定比較快。」 | 「要補一句:資料必須先排序。未排序就用二分,答案是錯的,這一句就是分數。」 |
07 家課建議(直接指到練習卷題號)
- 本章練習:重做比較次數計算一題,寫出減半序列 演算法章節 練習第 1 題
- 本章練習:把 pseudocode 轉成流程圖並自行走線一次 演算法章節 練習第 2 題
- 延伸:用 2 的次方表核對 100、1000、4096 三個最壞次數 演算法章節 練習第 3 題的數據欄
08 離場檢查(最後 5 分鐘)
| 題目 | 答案 | 判定 |
|---|---|---|
| 1,000 筆已排序資料,二分搜尋最壞比較幾次? | 10 次(2 的 10 次方 1024) | 答錯=下堂重教第三幕 |
| 判斷框用甚麼形狀,裡面要寫甚麼? | 菱形,寫可以答是或否的句子 | 答錯=下堂重教第二幕 |
| 演算法五個條件中,哪兩個最常不合格? | 明確、有限 | 答錯=下堂重教第一幕 |
09 導師常問
學生需要背六種符號嗎?
要認得並用得對,尤其是菱形與平行四邊形;考題多數直接給圖要求補或改,認錯形狀就整題錯。
為甚麼要用 2 的次方而不是硬數?
因為次方一次過交代「為甚麼是這個數」,也是 DSE 之後講時間複雜度的基礎。
流程圖與 pseudocode 要同時教嗎?
同一題兩者互換最有效:先畫圖再寫碼,或先寫碼再畫圖,學生就會發現兩者是同一件事的兩種寫法。
本頁為 TutorZone 導師備課指引,內容由 TutorZone 團隊編寫;題目與流程為原創,並非任何學校或出版社的教材。


