投稿する

平成22年春 [1736]

 またたかなさん(No.1) 
A=1,B=3,C=5,D=4,E=2 のとき,逆ポーランド表記法で表現された式 AB+CDE/-* の演算結果はどれか。

この問題の最後の部分である43*=12となるのがわかりません。
解説お願いします。
2019.04.16 23:23
枕営業男さん(No.2) 
43*は文字、文字、演算子の並びですよね?
それを、文字、演算子、文字に直して計算しているからです。
2019.04.16 23:42
さん(No.3) 
スタックですね。
手前から順にスタックに積んでいって、演算子が出てきたら、演算子の直前の二つを取り出して演算してスタックに戻します。
1.ABと積む
2.+が来るのでAとBを取り出してA+Bをスタックに戻す
3.CDEと積む
4.÷がくるのでDEを取り出してD÷Eをスタックに戻す
5.-がくるのでCとD÷Eを取り出してC-(D÷E)をスタックに戻す
6.×が来るので(A+B)と(C-(D÷E))を取り出して(A+B)×(C-(D÷E))をスタックに戻す

本当は多分、この後に=がきますよね?なので6の内容を計算して、4×3=12になります。
2019.04.16 23:50
午後試験から逃亡さん(No.4) 
A=1,B=3,C=5,D=4,E=2 

//ABCDEに数字を当てはめる
AB+CDE/-*    ⇒    13+542/-*

//演算子(+, /, -, *)の左に数字がある部分から計算する。 ←  今は決まりごととして覚えて。
[AB+] C [DE/] -*
①AB+ = 13+
②DE/ = 42/

//逆ポーランド表記法を日本語にすると「◯と△を××する。」 ← 今は決まりごととして覚えて。
①13+ = 1と3を足し算する。 = 4
②42/ = 4と2を割り算する。 = 2

//上記結果をもとの式に当てはめる。
[AB+]C[DE/]-* = 4C2-*

//もう一度、演算子(-, *)の左に数字がある部分から計算する。
4 [C2-] *
①C2- = 52-

//逆ポーランド表記法を日本語にすると「◯と△を××する。」
①52- = 5と2を引き算する。 = 3

//上記結果をもとの式に当てはめる。
4[C2-]* = 43*

//更に、演算子(*)の左に数字がある部分から計算する。
[43*]

//逆ポーランド表記法を日本語にすると「◯と△を××する。」 ← 質問者が求めるもの。
43* = 4と3を掛け算する。 = 12
2019.04.16 23:52
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop