基本情報技術者過去問題 平成28年秋期 午後問2

たかなさん  
(No.1)
基本情報技術者過去問題 平成28年秋期 午後問2  設問2e についての質問です。
https://www.fe-siken.com/kakomon/28_aki/pm02.html

解説に各選択肢の変換後の式がありますが、括弧の付け方がいまいち理解できません。
深さ優先なので、深い順に左から括弧付けをして計算をし、順に上がっていくという認識なのですが、これは間違っているのでしょうか。
どなたか解説をお願いできないでしょうか。
よろしくお願いいたします。
2022.10.12 23:29
jjon-comさん 
FE・シルバーエキスパート
(No.2)
> 深さ優先なので、深い順に左から括弧付けをして計算をし、
> 順に上がっていくという認識なのですが、これは間違っているのでしょうか。

それで正しいです。

> "演算子 op1 の優先順位は,演算子 op2 の優先順位よりも高い"

なので、イメージしやすいよう、
op1を*(乗算記号)、op2を+(加算記号)で表記すると、

> 例2:v op2 w op1 (x op2 y) op1 z

は、こうなります。

式その1…  v+w*(x+y)*z

演算の優先順位にしたがって完全括弧付きで表記すればこうなります。

式その2…  (v+((w*(x+y))*z))

次のように表記してもすべて同じ式であり、同じ構文木になります。

式その3…  v+((w*(x+y))*z)
式その4…  v+(w*(x+y))*z
式その5…  v+(w*(x+y)*z)

> 括弧の付け方がいまいち理解できません。

リンク先の解説では、省略可能な括弧を省略表記しているだけです。
省略可能な括弧であるなら、書いても書かなくても同じ意味の構文です。
2022.10.13 00:18
たかなさん  
(No.3)
回答ありがとうございます。

op1,op2を*,+に置き換えて考えてみると理解することができました。
ありがとうございました。
2022.10.13 09:45

返信投稿用フォーム

スパム防止のためにスレッド作成から30日以上経過したスレッドへの書き込みは禁止しています。

その他のスレッド


Pagetop