基本情報技術者試験「逆ポーランド記法」の問題
中置記法の式 (A + B) * C を逆ポーランド記法(後置記法)に変換したものはどれか。
アA B C + *
イA B + C *
ウ+ A B * C と表される
エA + B C * のままでよい
正解
イ.A B + C *
後置記法は演算子をオペランドの直後に置く。括弧内A+Bを先に評価しAB+、その結果と Cの積なので末尾に*を付けAB+C*となり正しい。
?選択肢ごとの解説
ア ×A B C + * はB+Cを先に計算してからAを掛ける式に相当し、本来先に評価すべきA+Bの括弧の優先順位を取り違えている。
イ ○後置記法は演算子をオペランドの直後に置く。括弧内A+Bを先に評価しAB+、その結果と Cの積なので末尾に*を付けAB+C*となり正しい。
ウ ×+ A B * C は演算子を前に置く前置記法(ポーランド記法)であり、後置記法ではない。
エ ×A + B C * は中置と後置が混在した不正な式で、逆ポーランド記法への変換になっていない。
✎くわしく
逆ポーランド記法は括弧を使わず演算順序を一意に表せる。変換は演算の優先順位に従い、先に行う演算ほど内側(左寄り)に演算子が並ぶ。括弧で囲まれたA+Bが最優先なのでAB+が先に確定し、最後の乗算の*が末尾に来る。
✓本番での押さえどころ
試験のコツ
後置記法は『被演算子→演算子』の順。括弧で示された先に計算する部分から順にスタックへ積むイメージで変換する。
覚え方
逆ポーランド=『数を先に言ってから、最後に何をするか言う』。A,Bと言って『足す』、その後C『掛ける』と覚える。
よくある誤り
括弧の優先順位を無視して演算子の位置を取り違える、または前置記法と後置記法を混同する誤りが多い。
基礎理論の他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0094