什麼是虛擬碼

不依賴特定程式語言、用來表示演算法步驟的寫法。日本基本資訊技術人員考試的科目B,以規定了型別宣言、以 ← 指派、if・while・for 等控制結構,以及從1開始的陣列元素編號等的虛擬碼來呈現程式。

日文名稱: 擬似言語

「虛擬碼」出現在1領域的1道練習題中(程式設計基礎(虛擬碼追蹤)等)。

這個名詞所屬的領域: 程式設計基礎(虛擬碼追蹤)

在基本資訊技術人員考試科目B中的用法

自2023年4月起,日本基本資訊技術人員考試中閱讀程式的題目(科目B)統一使用虛擬碼,過去可選擇的C、Java、Python、組合語言與試算表的題目都已取消。例如以「整數型: x ← 0」宣告變數並指派初值,以「for (i 從 1 到 n 每次加 1) … endfor」重複執行。陣列寫成 {1, 2, 3},元素編號從1開始。這種形式考的是:即使不熟悉特定語言的細部文法,能否讀懂演算法的步驟。

閱讀時的注意事項

與大多數程式語言相同,×、÷、mod 比 +、− 先計算,比較比 and 先計算,and 比 or 先計算。÷ 的結果小數部分如何處理、and 與 or 是否評估右側等會影響結果的約定,題目中都會說明,務必確認。陣列的元素編號從1開始,也是習慣從0開始的語言的人容易出錯的地方。

與實際程式語言的對應

虛擬碼的「x ← y」相當於C語言或Python的「x = y」,比較用的「=」相當於「==」,「≠」相當於「!=」。「for (i 從 1 到 n 每次加 1)」相當於C語言的「for (i = 1; i <= n; i++)」。把以虛擬碼思考的步驟改寫成實際的語言時,要注意陣列元素編號的起點,以及整數除法結果的差異。

常見問題

虛擬碼的程式可以執行嗎?

虛擬碼是給人閱讀的寫法,因此沒有執行它的標準處理系統。有時會為了學習而製作解譯虛擬碼的工具,但基本上是在紙上追蹤變數的值來確認動作。

與流程圖有什麼不同?

流程圖以符號與箭頭表示處理的流程,虛擬碼則以接近文章的形式表示。虛擬碼容易寫出細部的步驟,也容易改寫成實際的程式。

解析中的「虛擬碼」

出現「虛擬碼」的題目(1題)

  1. 下列程式原本打算用兩個指派敘述交換 x 與 y 的值。執行後 x 與 y 的值為下列何者?

半導體、電子電路與資訊計算工具

相關名詞

變數 引數 回傳值 位元運算 取餘運算 物件導向 差一錯誤 追蹤表 陣列 捨入誤差

前往名詞解釋列表