応用情報技術者 2010年 秋期 午前2 問01
問題文
後置表記法(逆ポーランド表記法)では、例えば、式Y=(A-B)×CをYAB-C×=と表現する。
次の式を後置表記法で表現したものはどれか。
Y=(A+B)×(C-(D÷E))
選択肢
ア:YAB+C-DE÷×=
イ:YAB+CDE÷-×=(正解)
ウ:YAB+EDC÷-×=
エ:YBA+CD-E÷X=
後置表記法(逆ポーランド表記法)の式変換【午前2 解説】
要点まとめ
- 結論:式 ( Y = (A+B) \times (C - (D \div E)) ) の後置表記は「YAB+CDE÷-×=」です。
- 根拠:後置表記は演算子の順序をオペランドの後に置き、括弧を使わずに計算順序を明示します。
- 差がつくポイント:複雑な入れ子の括弧を正しく展開し、演算子の順序を間違えないことが重要です。
正解の理由
選択肢イ「YAB+CDE÷-×=」は、まず (A+B) を「AB+」で表し、次に (D \div E) を「DE÷」、それを (C - (D \div E)) の形で「CDE÷-」と表現しています。最後に全体の掛け算「×」を付けて正しい後置表記となっています。
よくある誤解
- 演算子の順序を前置や中置の感覚で誤って配置しがちです。
- 括弧の入れ子を無視して単純に左から順に演算子を並べる誤りがあります。
解法ステップ
- 式を括弧ごとに分解し、最も内側の括弧から後置表記に変換する。
- (A+B) は「AB+」と表す。
- (D \div E) は「DE÷」と表す。
- (C - (D \div E)) は「CDE÷-」と表す。
- 最後に「(A+B) \times (C-(D \div E))」は「AB+ CDE÷- ×」となる。
- 変数Yを先頭に置き、最後に「=」を付けて「YAB+CDE÷-×=」とする。
選択肢別の誤答解説
- ア: 「YAB+C-DE÷×=」は「D-E÷」の部分が誤りで、除算の順序が逆です。
- イ: 正解。正しい後置表記で演算子の順序も正確です。
- ウ: 「EDC÷-×」は「D÷E」の順序が逆で、演算子の位置も不適切です。
- エ: 「YBA+CD-E÷X=」は変数の順序が混乱しており、演算子「X」は誤記で「×」の小文字も不適切です。
補足コラム
後置表記法は計算機のスタック処理に適しており、括弧を使わずに計算の優先順位を明示できます。プログラミング言語のコンパイラや電卓の内部処理でよく使われる表記法です。
FAQ
Q: 後置表記法で括弧は必要ですか?
A: いいえ、後置表記法は演算子の順序で計算順を示すため、括弧は不要です。
A: いいえ、後置表記法は演算子の順序で計算順を示すため、括弧は不要です。
Q: 後置表記法の計算はどうやって行いますか?
A: スタックにオペランドを積み、演算子が来たらスタックから必要な数だけ取り出して計算し、結果を戻す方法で処理します。
A: スタックにオペランドを積み、演算子が来たらスタックから必要な数だけ取り出して計算し、結果を戻す方法で処理します。
関連キーワード: 後置表記法、逆ポーランド記法、式変換、スタック、演算子優先順位

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

