擬似言語のクラスの説明表の読み方|引数と戻り値の2つだけ【基本情報技術者試験 科目B】

基本情報技術者試験

現行FE シラバス Ver9.2 準拠擬似言語の記述形式は2022年から変更なし最終更新 2026-10-17

前回で、クラスとはデータと処理をひとまとめにした型だと分かりました。今回は問題文に付いてくる「説明の表」を読んで、プログラムを追うところまでやります。

期間限定クーポンPR|Udemy の講座科目B オリジナル模試 3回分・60問42%OFF 1,500円2,600円中身を見る ›

問題文には、こういう表が付いてくる

クラスが出てくる問題には、中身のプログラムの代わりに表が渡されます。前回は簡単にしたものを見ましたが、実際の出題ではコンストラクタの表と、戻り値の欄が加わります。

ここでは Stack というクラスを例にします。ものを積み上げるデータ構造で、あとに積んだものから先に取り出します。机に積んだ本の山と同じです。いま覚えるのはこれだけで足ります。

クラス Stack の説明(当サイトの例)

コンストラクタ 説明
Stack() 空のスタックを生成する。
メソッド 戻り値 説明
push(整数型: n) なし n をいちばん上に積む。
pop() 整数型 いちばん上のものを取り出して返す。
size() 整数型 積まれている個数を返す。

長く見えますが、読むべきところは2つだけです。

拾うのは「引数」と「戻り値」の2つだけ

1つめは、括弧の中 ── 引数です。

push(整数型: n)
pop()

push の括弧には 整数型: n と書いてあります。整数を1つ渡してくださいという意味です。pop の括弧は空なので、何も渡しません。

これは手続の引数とまったく同じ書き方です。新しい約束はありません。

2つめは、戻り値の欄です。ここが、その行をどう書くかを決めます。

表の push は戻り値なしで1行で完結、pop は戻り値が整数型で ← の右に置いて受け取れる

表の戻り値を見れば、その行がどう書かれるか決まる

戻り値なし ── 1行で呼んで、それで終わり

以下、変数 s には Stack のインスタンスの参照が格納されているとします。表で push の戻り値はなしでした。返ってくるものがありません。

s.push(4)

だから、この行はこれだけで完結します。← の右に置くことはできません。置いても受け取るものが無いからです。

よくある誤り

整数型: n ← s.push(4) とは書けません。push は積むだけで、何も返さないからです。

戻り値あり ── 受け取れる。捨ててもよい

pop の戻り値は整数型でした。整数が1つ返ってきます。

だから ← の右に置いて受け取れます。

整数型: n ← s.pop()

条件式の中に置くこともできます。

if (s.size() が 0 と等しい)

そして ── 受け取らずに呼ぶこともできます。

s.pop()
「置ける」であって「必ず置く」ではない

戻り値があっても、要らなければ受け取らなくて構いません。実際の出題では、そのとき /* 戻り値は使用しない */ と書き添えられます。

/* と */ ではさんだ部分は注釈で、プログラムの動きには影響しません。読む人へのことわり書きです。

コンストラクタは、戻り値のある呼び出し

表のいちばん上に戻ってください。Stack() には戻り値の欄がありません。

それでも、こう書けます。

Stack: s ← Stack()

コンストラクタは、生成したインスタンスの参照を返すからです。だから ← の右に置けます。戻り値の欄が無いのは、返るものが「そのクラスのインスタンスの参照」に決まっているからです。s には、生成したインスタンスの参照を格納します。

1行ずつ動かして確かめる

ここまでの表だけを使って、表に書かれたとおりに呼ぶプログラムです。

Stack: s ← Stack()
s.push(4)
s.push(7)
s.pop() の戻り値を出力
s.push(9)
s.size() の戻り値を出力

最後の行で size() が返すのはいくつですか。push は3回呼んでいます。表だけを見て決めてから、下の「次へ」を押してください。答え合わせは装置の下にたたんであります。

インスタンスを生成して、メソッドを順に呼ぶ

当サイトオリジナルの例題


ループ開始前

スタックの中身

▲ いま読んでいる▲ いま書いた

いま計算していること

まだ計算していません

変数の状態

トレース表(進めると1行ずつ積み上がります)

答え合わせをひらく

答え合わせ

2 です。3回積みましたが、間の pop() で1個取り出しているので、残りは 4 と 9 の2個です。pop() は戻り値が整数型なので、あとに積んだ 7 が返ります。そして説明欄に「取り出して返す」とあるので、7 は中身からも消えます。

つまずきポイントまとめ

まちがえ方 正しい理解
戻り値なしのメソッドを ← の右に置く 返るものが無いので置けない。1行で完結
戻り値ありは必ず受け取ると思う 捨ててもよい。そのときは注釈が添えられる
メソッドの中身を想像する 表に書かれたとおりに動くと信じる。中は問われない

次に読む

A1-1 トレース表の書き方 ─ ここから第2部へ
G12-2 クラスとは ─ 変数と手続が1つになったもの
G12-1 演算子「.」 ─ メンバ変数とメソッドの読み方
G1 擬似言語の地図(入口)
目次 基本情報技術者試験 科目B 攻略ガイド

この記事で引用した資料

いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では、引用した箇所の文言を改変していません(省略や補いがある場合は、その場に明記しています)。

本文の例題は当サイトのオリジナルです。

タイトルとURLをコピーしました