基礎理論

基本情報技術者試験逆ポーランド記法」の問題

テクノロジ系基礎理論難易度:normal
中置記法の式 (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

【基本情報技術者試験】逆ポーランド記法の問題 — 解答・解説|ukamiru 過去問