テクノロジ系

疑似言語の読み方入門 — 科目B問題を怖くなくするための最初の一歩

導入

科目Bのアルゴリズム問題を見て「プログラムが読めない」と感じたことはないでしょうか。IPAが使う疑似言語は特定の言語ではなく、読み方のルールさえ覚えれば誰でも解読できるようになっています。

くわしく知ろう

疑似言語とは、特定のプログラミング言語に依存しない記法で処理の流れを表したものを指します。基本情報技術者試験の科目Bでは、IPAが独自に定めた疑似言語が使われており、この記法を正しく読めることが得点への近道です。

変数への代入は「変数名 ← 値」という矢印記号で表します。たとえば「合計 ← 0」は「合計という変数に0を代入する」という意味で、数学の等号「=」ではなく左向きの矢印を使う点が特徴です。

条件分岐は if / elseif / else / endif の組み合わせで表します。if の直後に条件式を書き、真のときだけ内側の処理が実行されます。どの条件にも当てはまらない場合は else のブロックが実行されます。

繰り返し処理には2種類あります。while / endwhile は条件が真の間だけ処理を繰り返します。for / endfor は「for i ← 1 to n」のように書き、変数 i を1からnまで1ずつ増やしながら繰り返します。

配列の参照は「配列名[添字]」で表し、IPAの疑似言語では添字が1から始まります。長さ5の配列 A の先頭は A[1]、末尾は A[5] です。0始まりの多くの言語と異なるため注意が必要です。処理を追うときは、変数ごとに列を作った「トレース表」に値を書き込むと値の変化を見失わずに済みます。

具体例

たとえば配列 A = {3, 1, 4, 1, 5} の合計を求めるには「合計 ← 0」で初期化した後、「for i ← 1 to 5」「合計 ← 合計 + A[i]」「endfor」と書きます。トレース表で i=1 から順に追うと最終的に合計は 14 になります。

まとめ・試験ポイント

  • 変数への代入=「変数名 ← 値」(等号ではなく矢印を使う)
  • 条件分岐= if / elseif / else / endif の組み合わせ
  • 繰り返し= while(条件真の間)/ for(指定回数)の2種類
  • 配列の添字は1始まり(A[1]が先頭)— 0始まりの言語と異なる点に注意
  • トレース表を書く習慣が、変数値の追跡ミスを防ぐ最善手
  • 試験では for ループや while ループを手動トレースして最終値を問う問題、および空欄の条件式を選ぶ穴埋め問題が頻出

学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。

入門試験100問に挑戦する