HOME»情報処理安全確保支援士令和5年秋期»午前T 問1
情報処理安全確保支援士令和5年秋期 午前T 問1
問1
逆ポーランド表記法(後置記法)で表現されている式ABCD−×+において,A=16,B=8,C=4,D=2のときの演算結果はどれか。逆ポーランド表記法による式AB+は,中置記法による式A+Bと同一である。
- 32
- 46
- 48
- 94
- [出典]
- 応用情報技術者
令和5年秋期 問3と同題
分類
テクノロジ系 » 基礎理論 » 情報に関する理論
正解
ア
解説
逆ポーランド表記法は、通常の中置記法とは異なり、演算子(+、−、×、÷)を2つの項の後ろに記述する数式の表現方法です。たとえば、中置記法の「1+2」は、逆ポーランド表記法で「12+」と記述されます。
逆ポーランド表記法による数式は、コンピュータがそのように処理するように、スタック(後入れ先出しのデータ構造)を使って以下の手順で答えを求めることができます。
【別解】
式中で最も左にある演算子を起点にして、中置記法の式に戻し、値を代入して演算します。
16+8×(4−2)
=16+8×2
=16+16=32
逆ポーランド表記法による数式は、コンピュータがそのように処理するように、スタック(後入れ先出しのデータ構造)を使って以下の手順で答えを求めることができます。
- 数式の左側から値を1つずつスタックに積んでいく
- 演算子が現れたら、スタックから上2つの値を取り出して演算し、その結果をスタックに積む
- 式を最後まで評価し、スタックに残っている値が答えとなる
- Aを積む [16]
- Bを積む [16, 8]
- Cを積む [16, 8, 4]
- Dを積む [16, 8, 4, 2]
- −なので、4、2を取り出し、4−2の結果である2を積む [16, 8, 2]
- ×なので、8、2を取り出し、8×2の結果である16を積む [16, 16]
- +なので、16、16を取り出し、16+16の結果である32を積む [32]
【別解】
式中で最も左にある演算子を起点にして、中置記法の式に戻し、値を代入して演算します。
- "CD−"を"C−D"にする
- "B(C−D)×"を"B×(C−D)"にする
- "AB×(C−D)+"を"A+B×(C−D)"にする
16+8×(4−2)
=16+8×2
=16+16=32