2025/10/1

台綜大B30 計概114 第七題 解答 ※ 販售必究 ※ 台灣綜合大學, 資訊管理系, 轉學考

Q7. 請將下列類似C語言的運算式寫成前序表示式 (prefix form)。請注意 && 與 || 的優先順序相同(且為由左至右):

A) a && b || (c>d) || !(e>f) || a+b
B) !a && (b<c) || x

Ans:

題目有特別說明:&&|| 的優先順序相同,且由左至右 (left-to-right)。這跟標準 C 稍微不同,標準 C 其實是 &&|| 優先,但這裡規則是相同、且左結合。

A) a && b || (c>d) || !(e>f) || a+b

  1. 先看結合方向:

    (((a && b) || (c > d)) || !(e > f)) || (a + b)

    這樣從左到右展開。

  2. 前序表示:

    • (a && b)&& a b

    • ((a && b) || (c > d))|| (&& a b) (> c d)

    • (((a && b) || (c > d)) || !(e > f))|| (|| (&& a b) (> c d)) (! (> e f))

    • 最後再和 (a + b)

      || (|| (|| (&& a b) (> c d)) (! (> e f))) (+ a b)

前序結果:

|| (|| (|| (&& a b) (> c d)) (! (> e f))) (+ a b)

B) !a && (b<c) || x

  1. 按左至右結合:

    ((!a && (b < c)) || x)
  2. 前序表示:

    • !a! a

    • (b < c)< b c

    • (!a && (b < c))&& (! a) (< b c)

    • ((!a && (b < c)) || x)|| (&& (! a) (< b c)) x

前序結果:

|| (&& (! a) (< b c)) x

沒有留言:

張貼留言