前回で、クラスとはデータと処理をひとまとめにした型だと分かりました。今回は問題文に付いてくる「説明の表」を読んで、プログラムを追うところまでやります。
期間限定クーポンPR|Udemy の講座科目B オリジナル模試 3回分・60問42%OFF 1,500円この回の内容を動画で見る
次のページで講義の目次と無料の講義を見られます。受講ボタンとクーポンコードもそこにあります。
この回の内容を動画で見る
解くための再現性が身につく講義29本小テスト86問模試3回分IT資格の森で見る
講義「説明の表の読み方」(全6分45秒)は、IT資格の森(月額1,280円)の会員向けです。科目Bは、1行ずつ値を追うアニメの講義と、講義ごとの小テスト、本番と同じ形の模擬試験がそろっています。
問題文には、こういう表が付いてくる
クラスが出てくる問題には、中身のプログラムの代わりに表が渡されます。前回は簡単にしたものを見ましたが、実際の出題ではコンストラクタの表と、戻り値の欄が加わります。
ここでは Stack というクラスを例にします。ものを積み上げるデータ構造で、あとに積んだものから先に取り出します。机に積んだ本の山と同じです。いま覚えるのはこれだけで足ります。
クラス Stack の説明(当サイトの例)
| コンストラクタ | 説明 |
|---|---|
Stack() |
空のスタックを生成する。 |
| メソッド | 戻り値 | 説明 |
|---|---|---|
push(整数型: n) |
なし | n をいちばん上に積む。 |
pop() |
整数型 | いちばん上のものを取り出して返す。 |
size() |
整数型 | 積まれている個数を返す。 |
長く見えますが、読むべきところは2つだけです。
拾うのは「引数」と「戻り値」の2つだけ
1つめは、括弧の中 ── 引数です。
push(整数型: n) pop()
push の括弧には 整数型: n と書いてあります。整数を1つ渡してくださいという意味です。pop の括弧は空なので、何も渡しません。
これは手続の引数とまったく同じ書き方です。新しい約束はありません。
2つめは、戻り値の欄です。ここが、その行をどう書くかを決めます。
表の戻り値を見れば、その行がどう書かれるか決まる
戻り値なし ── 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が公開している科目Bの公開問題・サンプル問題(PDF)の冒頭に掲載。名称は年度により「基本情報技術者試験用」と「基本情報技術者試験,応用情報技術者試験用」があるが、本文は同一
- 基本情報技術者試験 シラバス Ver9.2(2026年1月8日)
いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では、引用した箇所の文言を改変していません(省略や補いがある場合は、その場に明記しています)。
本文の例題は当サイトのオリジナルです。


