疑似言語とは
疑似言語とは、プログラムの処理を日本語に近い形で表した記述で、変数の値を一行ずつ追って読解します。IPAの試験では「擬似言語」と表記します。

コードを眺めて答えを予想するより、変数の値を一行ずつ追うと確実です。疑似言語では問題ごとの添字や範囲の約束も読みます。
基本の仕組み

s ← 0として、iを1から3まで1ずつ増やしながらs ← s+iを実行すると、sは1、3、6と変わります。更新前と更新後を分けた表を作ると、何が累積されたか分かります。
条件分岐は条件を評価した時点の値で進む先が決まり、反復では終了条件を再評価します。配列の走査では、添字(要素番号)がどこからどこまで動くかを先に確認します。
科目Bの問題文では「配列の要素番号は1から始まる」と注記されるのが通例です。一般的なプログラミング言語の0始まりと混同すると、参照する要素が一つずれます。また、ループの外で初期化する変数と毎回初期化する変数では結果が変わります。
科目Bの追跡手順

IPAの擬似言語の記述形式では、代入を「変数名 ← 式」、剰余算をmodで書きます。選択はif〜elseif〜else〜endifで、条件式を上から評価し、最初に真になった処理だけを実行します。値が格納されていない状態は「未定義」と呼びます。
繰返しのwhileは前判定で、条件が最初から偽なら一度も実行しません。do〜whileは後判定で、処理を必ず1回は実行します。forは制御記述(例:iを1からnまで1ずつ増やす)に従って繰り返します。
演算子の優先順位は、単項のnot・+・−が最も高く、乗除(mod・×・÷)、加減、関係演算子(≠・≦・=など)、and、orの順に低くなります。「a or b and c」は「a or (b and c)」と読みます。
読解では、変数の型、要素番号の開始、引数と戻り値を問題文で確認します。分岐の真偽と反復の各回で変わる値を表にし、境界値と終了条件を追います。最大値を判定する条件なら、候補が他の全ての値以上であることを確かめる必要があります。
| 確認点 | 誤読しやすい点 |
|---|---|
| 要素番号 | 1始まりか(問題文の注記)と末尾 |
| 選択 | elseifは最初に真になった処理だけ実行 |
| 反復 | 前判定か後判定か、更新と終了判定の順序 |
| 演算子 | andはorより先に評価 |
| 引数・戻り値 | 呼出し元の値が変わるか、何を返すか |
試験に出る
- 変数の値を一行ずつ追って表にするトレース。
- ループの初期化を外に置くか毎回行うかで結果が変わる点。
- 科目Bの配列は問題文の注記どおり要素番号1から始まる点(0始まりと混同しない)。
- 代入の←、剰余のmod、andがorより先に評価される優先順位など、擬似言語の記述形式。
- 条件分岐は評価時点の値、反復は終了条件を再評価する点。whileは前判定、do〜whileは後判定。
- 累積の有無で最終値が変わる計算例。
重要な言葉
- 疑似言語
- 処理の流れを日本語に近い形で表した記述。
- トレース
- 変数の値を一行ずつ追って処理結果を確かめること。
- ループ
- 条件が成り立つ間、同じ処理を繰り返す構造。
確認問題
確かめよう各反復の初めにs ← 0で戻したら最終値は?
3。合計が蓄積されなくなるためです。
ループの中で毎回変数を初期化すると、値が累積されない。
0始まりの配列と1始まりの配列を混同しても結果は同じ。
処理の値を一行ずつ追って確かめることを何という?
合計用の変数をループの中で毎回0に戻すと、合計はどうなる?
コードを眺めて答えを予想するより、を一行ずつ追うと確実です。では問題ごとの添字や範囲の約束も読みます。
s ← 0として、iを1から3まで1ずつ増やしながらを実行すると、sは1、3、6と変わります。更新前と更新後を分けた表を作ると、何がされたか分かります。
は条件を評価した時点の値で進む先が決まり、反復ではを再評価します。配列の走査では、添字(要素番号)がどこからどこまで動くかを先に確認します。
科目Bの問題文では「配列の要素番号は1から始まる」と注記されるのが通例です。一般的なプログラミング言語のと混同すると、参照する要素が一つずれます。また、の外で初期化する変数と毎回初期化する変数では結果が変わります。
出典・参考資料
試験の公式案内と、この記事の参考にした学習資料です。
編集:Pinternet Works · 更新日:
教材の編集方針・訂正について
