令和5年度 秋期 応用情報技術者試験 午前 問3

テクノロジアルゴリズム

この問題は2023(R5)秋 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

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

解答・解説を読む

正解: 選択肢

逆ポーランド表記法(後置記法)は、演算子を被演算子(オペランド)の後ろに置く記法です。この記法を用いた式は、スタックを用いて左から順に処理することで計算できます。

与えられた式 ABCD×+\text{ABCD}-\times+ に各値を代入すると、以下のようになります。
16842×+16\quad 8\quad 4\quad 2\quad -\quad \times\quad +

これを左から順に処理します。

  1. 数値 16,8,4,216, 8, 4, 2 が連続して現れるため、順番にスタックに積みます。
    • スタックの状態:[16,8,4,2][16, 8, 4, 2] (右端がスタックの先頭)
  2. 次に演算子 - が現れます。スタックから 2244 を取り出し、42=24 - 2 = 2 を計算し、結果の 22 をスタックに積みます。
    • スタックの状態:[16,8,2][16, 8, 2]
  3. 次に演算子 ×\times が現れます。スタックから 2288 を取り出し、8×2=168 \times 2 = 16 を計算し、結果の 1616 をスタックに積みます。
    • スタックの状態:[16,16][16, 16]
  4. 最後に演算子 ++ が現れます。スタックから 16161616 を取り出し、16+16=3216 + 16 = 32 を計算します。

最終的な演算結果は 32 となり、正解は「ア」です。

各選択肢の解説

  • ア (32): 正解です。
  • イ (46): 式を中置記法で A+B×CDA+B\times C-D16+8×42=4616+8\times4-2 = 46)と誤って解釈した場合の演算結果です。
  • ウ (48): 式を (A+B)×(CD)(A+B)\times(C-D)(16+8)×(42)=48(16+8)\times(4-2) = 48)などと、演算子の適用順序を誤って解釈した場合の演算結果です。
  • エ (94): 計算順序や演算子の適用箇所を複数誤って導かれた値です。