表達式分析

編寫算術表達式的方法被稱爲符號。一個算術表達式可以寫成在三個不同的但等效的符號,即, 不改變的本質或表達的輸出。這些符號是 -

  • 中間符號
  • 前綴(波蘭)符號
  • 後綴(反向波蘭)符號

這些符號被命名爲它們如何利用運算符表達式。我們將在這裏學會這些內容。

中間符號

我們編寫表達式中綴記號,例如,A-B+C,其中運算符用於在兩者之間的操作數。這是很容易爲我們人類所讀,寫和說中綴表示法,但不能使用計算設備順利計算。用算法來處理中間符號是困難和昂貴的時間和空間消耗。

前綴表示法

在此標記,運營商的前綴操作數,即算提前寫入操作數。在此標記,操作符到前綴操作數,即操作符提前寫入操作數。 例如,+ab. 這相當於其中綴符號 a+b. 前綴表示法也被稱爲波蘭表示法。

後綴表示法

這個符號風格被稱爲逆波蘭表示法。在此標記風格,操作者後綴操作數,即,操作符是在操作數後寫的。例如,ab+. 這相當於其中綴符號:a+b.

下表簡要試圖展示在所有三個符號的差異 −

S.n.

中綴表示法

前綴表示法

後綴表示法

1

a + b

+ a b

a b +

2

(a + b) * c

* + a b c

a b + c *

3

a * (b + c)

* a + b c

a b c + *

4

a / b + c / d

+ / a b / c d

a b / c d / +

5

(a + b) * (c + d)

* + a b + c d

a b + c d + *

6

((a + b) * c) - d

- * + a b c d

a b + c * d -

解析表達式

正如我們所討論的,它並不是設計一個算法或程序來解析中綴符號非常有效的方法。相反,這些中綴符號首先被轉換成或者後綴或前綴符號,然後計算。

分析任何算術表達式,我們需要注意運算符優先級和關聯性。

優先級

當一個操作數是在兩個不同的操作符之間,其中操作符將先採取操作數,由操作者於其他的優先級決定。例如 -

Operator

由於乘法運算的優先級高於加法,b * c 將首先計算。運算符優先級的表格在稍後提供。

關聯性

關聯性描述了使用相同的優先級運算符出現在一個表達式規則。例如,在表達式 a+b−c, +和 - 都具有相同的優先級,那麼該表達式的一部分將首先計算,通過這些運算符的關聯性決定的。在這裏,無論是 + 和 - 是左關聯的,所以表達式將被計算作爲 (a+b)−c.

優先級和結合,確定一個表達式的計算順序。運算符優先級和結合表如下所示(最高到最低)−

S.n.

操作符

優先級

關聯性

1

Esponentiation ^

最高

右關聯

2

Multiplication ( * ) & Division ( / )

次高

左關聯

3

Addition ( + ) & Subtraction (  )

最低

左關聯

在表達式計算任何時間點,順序可以通過使用括號所改變。 例如,

在A + B * C,表達部分:B * C將首先計算,這是由於乘法優先於加法。我們在這裏使用括號,使 A + B 首先進行評估計算,如(A + B)* C。