GCSE 虛擬碼:考試風格實務指南
學習考試委員會期望的確切虛擬碼慣例,包括涵蓋變數、迴圈、陣列和函數的詳細範例。
虛擬碼分數每年都因無謂的理由被扣掉:指派符號錯誤、遺漏冒號、縮排馬虎。本指南涵蓋 GCSE 電腦科學考試中使用的慣例(風格最接近 OCR 和 AQA 的參考資料表),並說明如何寫出確實獲得分數而非因格式細節被扣分的虛擬碼。
指派、比較和輸出
最常見的錯誤是混淆指派和相等性。虛擬碼根據考試委員會使用 <- 或 = 進行指派,所以要檢查你的規格說明,但邏輯兩者都一樣。
score = 0
score = score + 10
OUTPUT score
對於輸入和輸出,用大寫的 INPUT 和 OUTPUT — 閱卷者在找的是這些確切的關鍵字,不是 print() 或 console.log()。如果你在虛擬碼題目中寫 Python 風格的語法,有些評分方案若邏輯正確仍會接受,但別冒險。堅持所教的慣例。
比較在大多數考試委員會的虛擬碼中用 == 表示相等,!=、<、>、<=、>= 則如你所預期。不要用單一 = 做比較 — 這是經典的 C 風格錯誤,在 IF 陳述式中會被扣分。
選擇:IF、ELSE IF、ELSE
IF age < 13 THEN
OUTPUT "Child"
ELSE IF age < 18 THEN
OUTPUT "Teenager"
ELSE
OUTPUT "Adult"
ENDIF
每個 IF 都需要配對的 ENDIF(或 ENDIF/END IF 端視規格 — AQA 往往在某些版本中只用縮排結束,沒有明確的結尾符號,所以考試前檢查你的考試委員會的參考資料表)。縮排要一致:兩格或四格空格,選哪個都可以,但整個答案要保持一致。閱卷者透過縮排來讀結構,也透過關鍵字。
迴圈:三種迴圈類型、三種用途
GCSE 虛擬碼期望你知道何時使用各種迴圈,不只是怎麼寫。
計數控制 — 當你知道確切要重複多少次時用 FOR:
FOR i = 1 TO 10
OUTPUT i * i
NEXT i
條件控制、先檢查 — 當迴圈可能不執行時用 WHILE:
WHILE total < 100
total = total + 10
ENDWHILE
條件控制、後檢查 — 當迴圈必須至少執行一次時用 REPEAT...UNTIL,例如驗證輸入:
REPEAT
INPUT password
UNTIL LEN(password) >= 8
常見的考試陷阱:閱卷者要你指出為什麼 WHILE 迴圈永遠不執行,或為什麼 REPEAT 迴圈多執行一次。用實際數值在紙上逐行執行後再回答 — 不要只讀程式碼。
陣列和二維陣列
在考試虛擬碼中陣列幾乎總是零索引,符合與之並教的 Python 慣例。
names = ["Alex", "Sam", "Jo"]
OUTPUT names[0]
FOR i = 0 TO LEN(names) - 1
OUTPUT names[i]
NEXT i
對於二維陣列,你會看到 grid[row][col] 標記法和巢狀的 FOR 迴圈:
FOR row = 0 TO 2
FOR col = 0 TO 2
OUTPUT grid[row][col]
NEXT col
NEXT row
迴圈順序要對 — 列外行內是標準的,但要仔細讀題目因為某些評分方案會刻意對調來測試你是否真的在逐行執行邏輯。
程序和函數
知道差別:程序執行某事但不返回值,函數返回值。
PROCEDURE greet(name)
OUTPUT "Hello " + name
ENDPROCEDURE
FUNCTION square(n)
RETURN n * n
ENDFUNCTION
result = square(5)
greet("Priya")
除非題目另有說明,參數以傳值方式傳遞。被要求寫函數時,一定要包括 RETURN — 沒有 RETURN 的函數會被扣分,即使內部計算正確。
執行追蹤表:你最強的考試武器
題目給你虛擬碼並要求輸出時,別猜測 — 建立執行追蹤表。每個變數一欄,每次迴圈一列,當值改變時填入。比在腦中讀程式碼慢,但可靠得多,特別是面對巢狀迴圈或陣列邊界的差一錯誤時。
正確地練習
在輸入虛擬碼前先手寫 — 考試沒有自動補完。然後把你自己的幾個答案轉換成真正的 Python 並執行;若輸出符合你的預測,你的理解很扎實。若不符,你就發現了邏輯破裂的確切位置。
要進一步練習迴圈、陣列和函數的真實程式碼,檢查 Korra Studio 上的 Python 和電腦科學部分。
本文由 AI 協助撰寫,經 Michal Pilch(CISSP)審核並發佈,Korra Studio。
這是 Korra Studio 知識庫中的一篇筆記——該平台將每個主題與一對一的師資配對。
免費開始arrow_forward