跳轉到內容

GCSE 計算機科學/虛擬碼

75% developed
來自華夏公益教科書,開放的書籍,開放的世界

虛擬碼是一種非語言特定的程式碼編寫方式。它在專案的設計階段使用,作為一種快速方法,在確定要使用的語言之前設計算法,並且不需要花費太多時間使用完全正確的語法。編寫完虛擬碼演算法後,應該更容易使用它來幫助編寫程式程式碼。虛擬碼是一種結構化的演算法編寫方式,看起來非常像程式程式碼。

由於虛擬碼是一種非正式的程式碼編寫方式,即使在 GCSE 級別,也有不同的編寫方式。您應該瞭解您需要閱讀哪些虛擬碼以及您應該如何為課程編寫程式碼。您還應該瞭解是否提供了虛擬碼說明表。

  • AQA:瞭解他們的虛擬碼;使用任何合理的虛擬碼來回答考試問題;考試中沒有虛擬碼說明表。

定義變數

[編輯 | 編輯原始碼]

在設計算法時,程式設計師需要使用變數併為它們賦值。許多語言要求在使用變數之前對其進行定義並賦予資料型別。

DEFINE x AS integer

這裡可以使用五個基本資料型別,包括

  • Char
  • String
  • Integer
  • Real
  • Boolean

變數賦值

[編輯 | 編輯原始碼]
規範連結

瞭解並使用虛擬碼進行賦值,使用 ← - 2016 CIE 教學大綱 p15

在虛擬碼中,使用箭頭符號 (←) 表示將值賦給變數。箭頭指向從被賦值的值到被賦值的變數。

以下虛擬碼行應理解為“a 變為等於 34”。

a ← 34

總計和計數

[編輯 | 編輯原始碼]
規範連結

瞭解並使用虛擬碼,使用以下命令和語句
- 總計(例如 Sum ← Sum + Number)
- 計數(例如 Count ← Count + 1) - 2016 CIE 教學大綱 p15

賦值運算子也可以用於查詢總計,如以下示例所示,其中 x 變為等於 a 加 b。

x ← a + b

類似地,我們也可以使用賦值運算子進行計數,方法是將變數賦為其自身的值加 1。

x ← x + 1

輸入和輸出

[編輯 | 編輯原始碼]
規範連結

瞭解並使用虛擬碼,使用以下命令和語句
- 輸入和輸出(例如 READ 和 PRINT) - 2016 CIE 教學大綱 p15

輸出是將一些資料返回給程式使用者的行為。它可以是書面訊息、數值、影像、影片或聲音的形式。這在虛擬碼中顯示為編寫 OUTPUT,後跟輸出內容。以下示例顯示瞭如何輸出訊息“Hello World”

    OUTPUT 'Hello World'

有時,單詞 PRINT 可以代替 OUTPUT,如以下示例所示

    PRINT 'Hello World'

另一方面,輸入是當我們期望使用者提供一些值時。以下示例將輸出一條訊息,要求使用者輸入他們的姓名並將其分配給名為“name”的變數。

    PRINT 'What is your name?'
    INPUT name

單詞 READ 也可以代替 INPUT。

    PRINT 'What is your name?'
    READ name
規範連結

瞭解並使用虛擬碼,使用以下條件語句

IF … THEN … ELSE … ENDIF
CASE … OF … OTHERWISE … ENDCASE

2016 CIE 教學大綱 p15

選擇的使用允許在執行時根據某些條件在演算法中做出決策。

IF THEN ELSE

[編輯 | 編輯原始碼]

IF 語句以一個條件開始,該條件將被測試。如果條件評估為 TRUE,則將執行 THEN 程式碼塊。如果條件評估為 false,則將執行 ELSE 塊。在以下示例中,如果 x = 1,則將列印“Hello”,否則將列印“Good night”。

IF x = 1 THEN
    print "Hello"
ELSEIF
    print "Good night"
ENDIF

當有多個條件要檢查時,通常使用 ELSE IF。以下示例將列印“Hello”,如果 x = 1,或“How are you?”,如果 x = 2,否則將列印“Goodbye”。

IF x = 1 THEN
    print "Hello"
ELSE IF x = 2 THEN
    print "How are you?"
ELSE
    print "Goodbye"
ENDIF

CASE OF OTHERWISE ENDCASE

[編輯 | 編輯原始碼]

當條件有多種可能的結果時,使用此結構。例如,為了擴充套件上面的示例,假設您希望程式根據變數 x 的值列印不同的訊息:

CASE x OF
    1 : PRINT "Hello"
    2 : PRINT "How are you?"
    3 : PRINT "I am fine"
    4 : PRINT "Have a good day!"

OTHERWISE
    PRINT "Goodbye"
ENDCASE

在此示例中,如果 x = 1,則我們列印“Hello”,如果 x = 2,則列印“How are you?”,如果 x = 3,則列印“I am fine.”,或者如果 x = 4,則我們列印“Have a good dayǃ”。如果 x 等於任何其他值,則我們列印“Goodbye”。

規範連結

瞭解並使用虛擬碼,使用以下迴圈結構

FOR … TO … NEXT
REPEAT … UNTIL
WHILE … DO … ENDWHILE

2016 CIE 教學大綱 p15

當我們需要重複一段程式碼時,使用迭代。我們可以使一段程式碼重複,要麼重複一定次數,要麼持續重複,要麼只要某個條件繼續為真就重複,要麼直到某個條件變為真為止。

FOR TO NEXT

[編輯 | 編輯原始碼]

FOR 迴圈用於重複程式碼一定次數。我們指定一個計數器變數並將其設定為初始值,然後指定一個結束值。在每次迴圈迭代之後,計數器變數會自動遞增 1。在以下示例中,x 從 1 開始,每次程式碼重複時遞增 1,直到它達到 10,然後迴圈將終止。

FOR x = 1 TO 10
    print x
NEXT

REPEAT UNTIL

[編輯 | 編輯原始碼]

REPEAT 迴圈將重複程式碼塊,直到給定條件為真。條件不會在程式碼執行一次後才被檢查,因此無論條件是真還是假,程式碼都將始終至少執行一次。以下示例將繼續獲取使用者輸入,直到使用者輸入的值小於 10。此結構通常用於驗證檢查。

REPEAT
     INPUT x
UNTIL x < 10

WHILE DO ENDWHILE

[編輯 | 編輯原始碼]

在 WHILE 迴圈中,程式碼塊將執行,並繼續執行,直到給定條件不再為真。WHILE 迴圈類似於 REPEAT 迴圈,因為它根據條件決定何時終止。但是,while 迴圈在第一次執行之前檢查條件。如果條件不為真,則程式碼塊將永遠不會執行。

以下示例也用於輸入驗證。

INPUT x
WHILE x < 10
    INPUT x
ENDWHILE


華夏公益教科書