問3 プログラミング (擬似言語) 攻略

擬似言語の基本構文、トレース手法、頻出題材 (再帰・配列操作)、過去問パターンを整理。

問3 (プログラミング) は擬似言語によるアルゴリズム読解。配列・ループ・再帰の動作を追えれば取れます。

鳴海 理央(普段) 鳴海 理央

問3 で使われる 擬似言語 は、構文に依存しない仮想プログラミング記述。
代入は ←、比較は =、変数宣言は『型: 変数名』、ループは for / while、条件は if / else。

砂原 ニコ(普段) 砂原 ニコ

これってどう解けばいいの?

緒方 ナオミ 先生(笑顔) 緒方 ナオミ 先生

(1) アルゴリズムの『目的』を最初に把握 (関数名・コメント)、(2) 入出力の関係を確認、(3) 各変数の値を表で追跡、(4) 設問の空欄を周辺ロジックから推測。

例: 配列要素の最大値を求める擬似言語

// 配列 a の最大値を返す
function FindMax(整数の配列: a) を返す: 整数
    整数: max ← a[0]
    整数: i ← 1
    while (i < a.length)
        if (a[i] > max)
            max ← a[i]
        endif
        i ← i + 1
    endwhile
    return max
end
藤咲 まりあ(しょんぼり) 藤咲 まりあ

再帰の問題って難しいですぅ…

鳴海 理央(普段) 鳴海 理央

補足すると、再帰は『基底ケース』と『再帰呼び出し』を区別して、『何を呼び出すと終わるか』を最初に確認するといいですよ。
フィボナッチ・階乗・ハノイの塔が典型題材ですね。

緒方 ナオミ 先生(普段) 緒方 ナオミ 先生

問3 は科目Bで最も得点しやすい問題の1つなのよ。
FE で擬似言語に慣れていれば、AP も同じ感覚で解けるわ。

確認クイズ

上記の FindMax 関数において、配列 a = [3, 1, 4, 1, 5, 9, 2, 6] を引数に呼び出した場合、関数が返す値はいくつか。

  1. 3
  2. 5
  3. 9
  4. 6
こたえを見る

正解: 3. 9

FindMax は配列の最大値を返す。a = [3, 1, 4, 1, 5, 9, 2, 6] の最大値は 9。max は最初 a[0]=3 で初期化され、ループで a[i] > max のたびに更新され、9 にたどり着いた後は更新されません。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。