DBデータベーススペシャリスト試験 午前Ⅰ
令和6年度秋期 データベーススペシャリスト 午前Ⅰ 問2
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア+×CBA
- イ×+ABC
- ウABC×+
- エCBA+×
解き方のヒントを見る
演算の結合順序を先に確かめよう
記法を変換する問題では、元の式でどの演算がどの項と先にまとまるかを把握することが土台になります。優先順位と括弧の役割を自分の言葉で整理し、変換後の表現でも同じまとまりが保たれているかという一点に絞って検討しましょう。
この問題で問われていること
問われているのは、演算子ごとの強さの違いと括弧の有無によって、式のどの部分が一つのかたまりとして扱われるかを正しく見極められるかどうかです。記号を並べ替える作業より先に、この区切り方を確定させる姿勢が重要です。
視点
中置記法は演算子を項と項の間に置く書き方なので、優先順位や括弧の取り決めがないと、どこで区切るかが曖昧になります。一方、演算子を項の前後にまとめて置く記法では、区切りの情報が記号の並び順そのものに込められます。記法が変わっても、表している計算の中身、つまりどの演算が何を対象にするかは変わってはいけません。同じ強さの演算子が続く場合の扱いも含め、教科書で定義を確認しておくと検討が安定します。
確認ポイント
- 元の式で、各演算子がどの項やどの部分式を対象にしているかを自分で区切って書き出せるか
- 括弧が区切り方をどう変えているかを、括弧がない場合と比べて説明できるか
- 変換後の表現を読み戻したとき、元の式と同じまとまりで計算されることを確かめたか
正解と解説を見る
正解
ウ
解説
A+B×C では乗算 B×C を先に計算し、その結果に A を加えます。後置記法では B×C が BC×、全体が A (BC×) + となるので、ABC×+ が適切です。
変換の手順
A+B×C は優先順位により A+(B×C) と解釈します。内側の B×C を後置記法にすると BC× です。外側は「A と (B×C) の和」なので、A、BC×、+ の順に並べて ABC×+ になります。
スタックでの検算
ABC×+ を左から評価します。A、B、C の順に積み、× で B と C を取り出して B×C を積みます。続く + で A と B×C を取り出して A+B×C を得るので、元の式と一致します。
他の選択肢との比較
演算子を前に置く並び(ア、イ)は前置記法の形で、後置記法として左から評価すると最初の演算子の時点で演算対象がありません。エは後置記法として評価できますが、加算が先に行われるので計算内容が変わります。
選択肢ア
これは不正解だよ。+×CBA は演算子が演算対象より前にあるので、逆ポーランド表記法として左から評価すると、最初の+の時点でスタックに演算対象がなく計算できないよ。演算対象も C、B、A と元の式から逆順に並んでいて、A+B×C を表す後置記法になっていないんだ。
選択肢イ
これは不正解だよ。×+ABC は演算子を前に置く前置記法(ポーランド記法)の形だよ。前置記法として読むと ×(+AB)C つまり (A+B)×C になり、加算を先に行うので元の式と優先順位が違うんだ。後置記法として左から評価しても、最初の×の時点で演算対象がなく計算できないよ。
選択肢ウ(正解)
これは正解だよ。左から A、B、C を積み、× で B と C を取り出して B×C を積むよ。次の + で A と B×C を取り出して A+B×C になるんだ。乗算を先に行う優先順位も、演算対象の並び順も元の式と一致するよ。
選択肢エ
これは不正解だよ。CBA+× を左から評価すると C、B、A を積み、+で B+A を計算してから × で C×(B+A) になるよ。これは加算を先に行う (A+B)×C と同じ値で、乗算を先に行う A+B×C とは計算内容が違うんだ。演算対象の並びも元の式と逆順になっているよ。
学習のポイント
中置記法から後置記法への変換と、スタックを使った評価手順を確認しましょう。
出典:独立行政法人 情報処理推進機構(IPA)令和6年度秋期 データベーススペシャリスト試験 午前Ⅰ 問2(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針