令和5年度 秋期 データベーススペシャリスト試験 午前Ⅰ試験 問1

過去問 午前Ⅰ試験過去問

問題

逆ポーランド表記法(後述記法)で表現されている式ABCDー×+において、A=16, B=8, C=4, D=2のときの演算結果はどれか。逆ポーランド表記法による式AB+は、中置記法による式A+Bと同一である。

ア 32 
イ 46 
ウ 48 
エ 94

解説

逆ポーランド表記法(ぎゃくポーランドきほう、英語: Reverse Polish Notation, RPN)は、数式やプログラムの記法の一種です。演算子を被演算子の後にすることから、後置記法とも言います。

逆ポーランド表記法では、演算子を被演算子の後に置くことで、括弧を使用せずに演算子の優先順位を明確にすることができます。そのため、コンピュータで計算を行う際には、逆ポーランド表記法がよく使われます。

逆ポーランド表記法の例を以下に示します。

中置記法 | 逆ポーランド表記法
------- | --------
1 + 2 | 1 2 +
(1 + 2) * 3 | 1 2 + 3 *

逆ポーランド表記法の計算方法は、以下のとおりです。

  1. 式を前から順番に読み、被演算子をスタックに積んでいきます。
  2. 演算子を読んだら、スタックから被演算子を取り出して演算を行い、その結果をスタックに積みます。
  3. 式の最後まで読み終わったら、スタックから結果を取り出して出力します。

例えば、逆ポーランド表記法の式「1 2 + 3 *」を計算すると、以下のようになります。

  1. 1をスタックに積む。
  2. 2をスタックに積む。
  3. 「+」を読み、スタックから1と2を取り出して演算を行う。
  4. 3をスタックに積む。
  5. 「*」を読み、スタックから3と演算結果を取り出して演算を行う。
  6. スタックから結果を取り出して出力する。

結果は、7となります。

逆ポーランド表記法には、以下のメリットがあります。

  • 括弧を使用せずに演算子の優先順位を明確にできる
  • 計算機で計算を行う際には、スタックを使用した計算方法を採用できるため、計算手順が簡易で処理が行いやすい

逆ポーランド表記法は、コンピュータで計算を行う際には、非常に便利な記法です。

というわけで、今回の問題「ABCDー×+」を解いてみましょう。

  1. A=16をスタックに積む。
  2. B=8をスタックに積む。
  3. C=4をスタックに積む。
  4. D=2をスタックに積む。
  5. 「ー」を読み、スタックから4と2を取り出して演算を行う。
  6. 2をスタックに積む。
  7. 「×」を読み、スタックから8と2を取り出して演算を行う。
  8. 16をスタックに積む。
  9. 「+」を読み、スタックから16と16を取り出して演算を行う。
  10. スタックから結果を取り出して出力する。

結果は、32となるので、正解は「」です。