一、表達式的意義
引表達式,是由數字、算符、數字分組符號(括弧)、自由變數和約束變數等以能求得數值的有意義排列方法所得的組合。約束變數在表達式中已被指定數值,而自由變數則可以在表達式之外另行指定數值。給與自由變數一些數值指定,可能可以給與一個表達式數值,即使對於一些自由變數的值,表示式或許沒有定義。因此,一個表達式代表一個函式,其輸入為自由變數的定值,而其輸出則為表示式因之後所產生出的數值。
舉例來說,表達式x / y,分別使自由變數x和y定值為10和5,其輸出為數字2;但在y值為0時則沒有定義。
一個表達式的賦值和算符的定義以及數值的定義域是有關聯的。
兩個表達式若被說是等值的,表示對於自由變數任意的定值,兩個表達式都會有相同的輸出,即它們代表同一個函式。
一個表達式必須是合式的。亦即,其每個算符都必須有正確的輸入數量,在正確的地方。如表達式2+3便是合式的;而表達式*2+則不是合式的,至少不是算術的一般標記方式。
表達式和其賦值曾在一九三○年代由阿隆佐·邱奇和Stephen Kleene在其Λ演算中被公式化。Λ演算對現代數學和電腦程式語言的發展都曾有過重大的影響。
二、表達式的分類
1、算術表達式:算術表達式是最常用的表達式,又稱為數值表達式。它是通過算術運算符來進行運算的數學公式。我們先來看Visual Basic中的算術運算符:
算術運算符
1)乘法運算符 *
X*Y 求X乘Y的值 舉例:6*7=42
2) 除法運算符 /
X/Y 求X除Y的值(浮點數運算) 舉例:2.76/1.2=2.3
3)整除運算符 div
X div Y 求X除Y的整數商(對整型數計算) 舉例:25=5
4)取余運算符 Mod
X mod Y 求X除Y的餘數(對整型數運算) 舉例:25 mod 4=1
5)加法運算符 +
X+Y 加法運算 舉例:32+2=34
6)減法運算符 -
- X-Y 減法運算 舉例:48-21=27
由於Visual Basic只能識別按其格式書寫的數學表達式,所以必須將我們常用的數學表達式轉換成Visual Basic表達式。
2、邏輯表達式
邏輯運算的結果只有兩個:True(真)和False(假)。Visual Basic提供了六種關係運算符和三種邏輯運算符:
=(等於)、<(小於)、<=(小於等於)、>(大於)、>=(大於等於)、<>(不等於)
NOT(非)、AND(與)、OR(或)
運算關係
p q NOT p p AND q p OR q
True True False True True
True False False False True
False True True False True
False false True False False
例如:5>3 結果為 True, “a”>”b” 結果為False。
三、表達式的運算優先順序
在進行表達式的轉換過程中,必須了解各種運算的優先順序,使轉換後的表達式能滿足數學公式的運算要求。運算優先順序為:括弧→函式→乘方→乘、除→加、減→字元連線運算符→關係運算符→邏輯運算符
如果同級的運算是按從左到右次序進行;多層括弧由里向外。
例:
(10+6)*3^2*COS(1)/2*8+7
① ④ ③ ⑤ ② ⑥ ⑦ ⑧
Sqrt(Abs(p/n-1))+1
④ ③ ① ② ⑤