修了試験 2020-07-26実施分 基本情報技術者試験 問5
後置記法(逆ポーランド記法)では,例えば,式Y=(A-B)×CをYAB-C×=と表現する。 次の式を後置記法で表現したものはどれか。 Y=(A+B)×(C-D÷E)
正答2
解説
正解は2です。 中置記法の式を後置記法(逆ポーランド記法)に変換する問題です。 後置記法では、演算子を二つの被演算子の後ろに書きます。 例の式では、代入先のYを先頭に、代入の=を最後に置いています。 【変換の手順】 優先順位の高い部分から順に変換します。 A+Bは、AB+になります。 D÷Eは、DE÷になります。 C-D÷Eは、Cと「DE÷」の差なので、CDE÷-になります。 (A+B)×(C-D÷E)は、「AB+」と「CDE÷-」の積なので、AB+CDE÷-×になります。 先頭にY、最後に=を付けると、YAB+CDE÷-×=です。 【選択肢別解説】 1:× YAB+C-DE÷×=をスタックで計算すると、((A+B)-C)×(D÷E)になります。 元の式とは異なります。 2:○ YAB+CDE÷-×=は、(A+B)×(C-D÷E)を正しく後置記法で表しています。 3:× YAB+EDC÷-×=を計算すると、(A+B)×(E-D÷C)になります。 CとEの位置が逆です。 4:× YBA+CD-E÷×=を計算すると、(B+A)×((C-D)÷E)になります。 減算より除算を先に行うという優先順位が守られていません。 【ポイント】 後置記法の式は、スタックを使って左から順に処理するだけで計算できます。 変換した後に、スタックで計算し直して元の式に戻るかを確かめると確実です。まとめて解く
修了試験 2020-07-26実施分を通しで解く(80問)→