擬似言語が全くわからない!? IT初心者でも読めるようになる考え方と勉強法
擬似言語を見た瞬間に、
何をしているのかまったくわからない。
そんなふうに感じていませんか。
基本情報技術者試験やITパスポートの勉強を始めると、急にプログラムのような文章が出てきます。 日本語のようにも見えるけれど、記号や変数が混ざっていて、読み方がつかみにくいですよね。
でも、安心してください。 擬似言語がわからないのは、才能がないからではありません。
原因は、読み方の順番を知らないことです。 変数、代入、条件分岐、繰り返しを一気に理解しようとすると、誰でも混乱します。
この記事では、擬似言語がわからないIT初心者に向けて、つまずく理由、基本ルール、サンプルコードの読み方、勉強手順をやさしく解説します。
擬似言語がわからないのは普通です¶
まず伝えたいのは、擬似言語を最初からスラスラ読める人はほとんどいないということです。 特にIT初心者の場合、変数やループという考え方に慣れていないので、難しく感じて当然です。
擬似言語は、普通の日本語とは読み方が違います。 前から文章として読むだけではなく、値がどう変わるかを追いながら読む必要があります。
たとえば、次のような処理があったとします。
x ← 3
y ← x + 2
x ← y + 1
一見すると短いですが、xの値は途中で変わります。 最初のxは3ですが、最後のxは6です。
ここで混乱する人は多いです。 なぜなら、数学の式のように見えても、実際には上から順番に値を入れ替えているからです。
わからない原因は能力ではなく読み方です¶
擬似言語でつまずく人の多くは、頭の中だけで全部を処理しようとします。 しかし、変数が2つ、3つと増えると、人間の記憶だけではすぐに追いきれなくなります。
私でも、複雑な処理を読むときは紙やメモを使います。 プロでも書き出すのですから、初心者が頭だけで追えなくてもまったく問題ありません。
擬似言語とは何かをざっくり確認しよう¶
読み方に入る前に、擬似言語が何のためにあるのかを確認しておきましょう。 ここがわかると、少しだけ怖さが減ります。
擬似言語とは、プログラムの処理手順を人間が読みやすい形で表したものです。 PythonやJavaのように実際に動かすための言語ではなく、アルゴリズムを説明するための表現だと考えるとわかりやすいです。
より基本から確認したい場合は、先にこちらの記事をお読みください。 【関連記事】擬似言語とは?IT初心者にもわかる意味・書き方・プログラミングとの違いをやさしく解説
擬似言語とプログラミング言語の違い¶
擬似言語とプログラミング言語は似ていますが、目的が違います。 違いを表にすると、次のようになります。
| 項目 | 擬似言語 | プログラミング言語 |
|---|---|---|
| 主な目的 | 処理の流れを理解する | コンピュータに実行させる |
| 実行できるか | 基本的には実行できない | 実行できる |
| 文法 | 比較的ゆるい | 厳密 |
| 読む人 | 人間 | 人間とコンピュータ |
| 試験での役割 | アルゴリズムを問う | 特定言語の知識を問う |
擬似言語は、細かい文法よりも処理の考え方に集中するためのものです。 そのため、最初はきれいに書けることより、何をしているか読めることを目指しましょう。
擬似言語がわからない3つの原因¶
ここからは、擬似言語がわからないと感じる代表的な原因を整理します。 自分がどこでつまずいているのかが見えると、対策もしやすくなります。
代入を等号のように読んでしまう¶
最初の壁は、代入です。
擬似言語では、右側の値を左側の変数に入れるときに、← を使うことがあります。
合計 ← 合計 + 点数
この書き方を数学の等式として見ると、合計と合計 + 点数が同じという変な式に見えます。 でも、プログラムでは意味が違います。
右側の合計 + 点数を先に計算して、その結果を左側の合計に入れ直します。 つまり、合計を更新しているのです。
繰り返しの回数を頭だけで数えてしまう¶
次につまずきやすいのが、for文やwhile文のような繰り返しです。 同じ処理が何度も行われるため、変数の値が毎回変わります。
頭の中だけで追うと、2回目、3回目あたりで値を見失いやすいです。 特に試験本番では緊張もあるので、暗算だけに頼るのは危険です。
配列の番号で迷ってしまう¶
配列も、擬似言語がわからない原因になりやすいです。 配列とは、複数の値をまとめて入れておく箱のようなものです。
点数 ← {70, 85, 90}
print(点数[2])
この例では、点数[2]は2番目の85を表します。 ただし、問題によっては番号の始まり方が指定されることもあるため、問題文のルールを必ず確認しましょう。
まず覚えたい擬似言語の基本ルール¶
擬似言語を読むには、すべての記号を一気に覚える必要はありません。 まずは頻出するものだけ押さえれば、かなり読みやすくなります。
| 記号・書き方 | 意味 | 読み方のイメージ |
|---|---|---|
x ← 10 |
代入 | xに10を入れる |
if 条件 |
条件分岐 | 条件が正しければ処理する |
else |
それ以外 | 条件が正しくない場合の処理 |
for |
繰り返し | 決まった回数だけ処理する |
while |
繰り返し | 条件が成り立つ間だけ処理する |
配列[i] |
配列の要素 | i番目の値を取り出す |
mod |
余り | 割った余りを求める |
記号を一覧で確認したい場合は、こちらの記事もご覧ください。 【関連記事】擬似言語の記号・記述形式一覧|試験前のチェック早見表
この表を丸暗記しようとしなくても大丈夫です。 問題を読みながら、出てきたものを何度も確認していけば自然に慣れていきます。
サンプルコードで読み方を練習しよう¶
ここからは、短いサンプルコードを使って読み方を確認します。 いきなり長い問題に挑戦するより、短いコードを正確に読むほうが力になります。
まずは、1から5までの合計を求める処理です。
合計 ← 0
for (i を 1 から 5 まで 1 ずつ増やす)
合計 ← 合計 + i
endfor
print(合計)
このコードは、合計という変数に1、2、3、4、5を順番に足しています。 最後に表示される値は15です。
トレース表で値の変化を見る¶
擬似言語がわからない人ほど、トレース表を使うのがおすすめです。 トレースとは、処理を1行ずつ追いながら変数の値を書き出すことです。
| 回数 | i | 合計の変化 |
|---|---|---|
| 初期値 | - | 0 |
| 1回目 | 1 | 1 |
| 2回目 | 2 | 3 |
| 3回目 | 3 | 6 |
| 4回目 | 4 | 10 |
| 5回目 | 5 | 15 |
表にすると、合計が少しずつ増えていることが見えます。 この見える化がとても大切です。
私は実務でバグを調べるときも、頭の中だけで判断しません。 ログを見たり、変数の値を書き出したりして、事実を確認してから原因を探します。
擬似言語の試験対策も同じです。 なんとなく読むのではなく、値を見える形にすることで正答率が上がります。
配列が出てきたときの読み方¶
次に、配列を使ったサンプルを見てみましょう。 配列は難しく見えますが、番号付きのロッカーだと思うと少し楽になります。
点数 ← {72, 88, 61, 95, 80}
最大 ← 点数[1]
for (i を 2 から 5 まで 1 ずつ増やす)
if (点数[i] > 最大)
最大 ← 点数[i]
endif
endfor
print(最大)
このコードは、点数の中から最大値を探しています。 最初に点数[1]の72を最大として仮に置き、残りの値と順番に比べます。
最大値を探す処理の流れ¶
この処理では、最大という変数が今まで見た中で一番大きい値を覚えています。 新しく見た点数が最大より大きければ、最大を更新します。
| i | 点数[i] | 最大の変化 | 判断 |
|---|---|---|---|
| 初期値 | 72 | 72 | 仮の最大 |
| 2 | 88 | 88 | 72より大きいので更新 |
| 3 | 61 | 88 | 更新しない |
| 4 | 95 | 95 | 88より大きいので更新 |
| 5 | 80 | 95 | 更新しない |
最終的に表示されるのは95です。 この最大値を更新するパターンは、基本情報技術者試験の科目Bでもよく出る考え方です。
擬似言語がわからないときの読み方の順番¶
擬似言語は、上から順番に読むだけではなく、読む前の準備が大切です。 私が実務でも試験対策でも意識している順番を紹介します。
| 順番 | 見る場所 | 意識すること |
|---|---|---|
| 1 | 問題文 | 何を求める処理か確認する |
| 2 | 変数 | どんな値を持つ箱があるか見る |
| 3 | 初期値 | 最初に何が入っているか確認する |
| 4 | 条件分岐 | どちらの道に進むか判断する |
| 5 | 繰り返し | 何回実行されるか数える |
| 6 | 出力 | 最後に何を表示するか確認する |
いきなりコードの1行目から細かく読もうとすると、途中で迷子になりやすいです。 先にゴールを確認すると、どの変数に注目すべきかが見えてきます。
たとえば、最大値を求める問題なら、最大やmaxのような変数に注目します。 合計を求める問題なら、合計やtotalのような変数が主役になりやすいです。
早く読むことより正しく読む¶
ここで少し、私自身の経験をお話しします。 エンジニアとして10年ほど働いてきましたが、現場で大事なのは速く読むことより、正しく読むことです。
初心者の頃の私は、コードを見てすぐに理解しようとしていました。 しかし、複雑な処理になるほど、なんとなく読んだつもりが一番危険だと気づきました。
実務では、他の人が書いたコードを読む場面がたくさんあります。 そのときに役立つのは、1行ずつ処理を追い、変数の値を確認し、条件がどちらに進むかを冷静に見る力です。
これは、擬似言語の学習とかなり近いです。 つまり、擬似言語でトレースを練習することは、試験対策だけでなく、実務でコードを読む力にもつながります。
私が今でもよくやるのは、わからない処理に出会ったら小さな値を入れて試すことです。 配列の要素が100個あるなら、まず3個だけに減らして考えます。
小さくしても動きがわからない処理は、大きいまま読んでもわかりません。 逆に、小さな例で理解できると、全体の流れも見えやすくなります。
擬似言語の勉強はこの順番がおすすめです¶
擬似言語がわからない状態から抜け出すには、勉強する順番も大切です。 最初から過去問の長い問題に挑戦すると、かなり疲れてしまいます。
おすすめは、短い処理から少しずつ広げることです。 次の順番で進めると、無理なく理解しやすくなります。
| ステップ | 学ぶ内容 | 目標 |
|---|---|---|
| 1 | 変数と代入 | 値が変わる感覚をつかむ |
| 2 | if文 | 条件で処理が分かれることを理解する |
| 3 | for文 | 回数を数えながら読む |
| 4 | 配列 | 番号と値をセットで追う |
| 5 | トレース | 表を書いて値を確認する |
| 6 | 頻出パターン | 合計、最大値、探索に慣れる |
| 7 | 試験問題 | 問題文とコードを合わせて読む |
この順番なら、前の内容が次の内容の土台になります。 代入があいまいなままループに進むと難しくなるので、最初のステップを丁寧に進めましょう。
シミュレーターを使うと理解しやすい¶
擬似言語は紙でトレースすることが大切ですが、実際に動かして確認する学習も効果的です。 特に初心者は、自分の予想と実行結果を比べることで理解が深まります。
ただし、シミュレーターに答えを出してもらうだけでは力がつきにくいです。 先に自分で結果を予想してから実行することが大切です。
擬似言語を動かしながら学びたい場合は、こちらの記事も参考になります。 【関連記事】擬似言語 シミュレーターとは?試験対策に役立つ使い方と学習法を解説
学習の流れはシンプルです。 短いコードを読む、結果を予想する、トレース表を書く、シミュレーターで確認する、間違えた場所をもう一度読む。
この繰り返しで、擬似言語は少しずつ読めるようになります。 大切なのは、完璧に理解してから進むことではなく、手を動かしながら慣れていくことです。
試験対策では満点よりも基本パターンを大切にする¶
基本情報技術者試験の科目Bでは、IPAのサンプル問題でもアルゴリズムとプログラミングが大きな割合を占めています。 そのため、擬似言語がまったく読めない状態だと不安が残ります。
とはいえ、最初から難しいアルゴリズムを全部理解しようとしなくて大丈夫です。 まずは合計、カウント、最大値、条件分岐、配列の走査といった基本パターンに慣れましょう。
基本パターンがわかると、長い問題も分解して読めるようになります。 難しい問題に見えても、中身は小さな処理の組み合わせでできていることが多いです。
まとめ:擬似言語は読み方を知れば少しずつわかる¶
擬似言語がわからないと感じるのは、珍しいことではありません。 むしろ、IT初心者なら自然な反応です。
大切なのは、わからないまま気合いで読み続けることではありません。 変数、代入、条件分岐、繰り返し、配列を一つずつ分けて見ることです。
特に効果があるのは、トレース表を書くことです。 頭の中だけで処理を追うのをやめて、値の変化を見える形にしましょう。
エンジニア歴10年の私でも、複雑な処理は必ず分解して読みます。 初心者のうちは、ゆっくりで大丈夫です。
今日できることは、短いコードを1つだけ読んでみることです。 そして、最後に表示される値を自分で予想してみてください。
その小さな練習の積み重ねが、擬似言語がわからない状態から抜け出す一番確実な道です。