計算表示式的函式

2021-10-23 10:45:52 字數 1609 閱讀 3137

為了能夠接受使用者以表示式的形式輸入的資料,今天給出兩個函式,可以解決這個問題。思路是先將表示式中可能存在的雙角字元代替成半形字元,再呼叫系統的表示式計算函式做計算,以下兩個函式可以自行試用。

function js

(表示式 as string)

表示式 =

replace

(表示式,

"+",

"+")

表示式 =

replace

(表示式,

"-",

"-")

表示式 =

replace

(表示式,

"×",

"*")

表示式 =

replace

(表示式,

"÷",

"/")

表示式 =

replace

(表示式,

"(",

"(")

表示式 =

replace

(表示式,

")",

")")

dim s as string,

i as long

for i

=1 to len

(表示式)

if asc

(mid

(表示式,i,

1))>

0 then s=s

&mid

(表示式,i,

1)next i

jsevaluate(s

)end function

function superjs

(表示式 as string)

表示式 =

replace

(表示式,

"+",

"+")

表示式 =

replace

(表示式,

"-",

"-")

表示式 =

replace

(表示式,

"×",

"*")

表示式 =

replace

(表示式,

"÷",

"/")

表示式 =

replace

(表示式,

"(",

"(")

表示式 =

replace

(表示式,

")",

")")

dim s as string,

i as long

for i

=1 to len

(表示式)

if asc

(mid

(表示式,i,

1))>

0 then s=s

&mid

(表示式,i,

1)next i

with createobject

("msscriptcontrol.scriptcontrol"

).language =

"vbscript"

superjs =

.eval(s

) end with

end function

表示式計算

棧的應用舉例 棧在表示式計算過程中的應用 建立運算元棧和運算子棧。運算子有優先順序。規則 自左至右掃瞄表示式,凡是遇到運算元一律進運算元棧。當遇到運算子時,如果它的優先順序比運算子棧棧頂元素的優先順序高就進棧。反之,取出棧頂運算子和運算元棧棧頂的連續兩個運算元進行運算,並將結果存入運算元棧,然後繼續...

表示式計算

表示式計算對於我們人來說,喜歡通過中綴表示式來計算,而計算機則不一樣,需要通過字尾表示式來計算,首先通過例項來介紹一下中綴表示式和字尾表示式 例子 中綴表示式 3 5 2 3 6 字尾表示式 3 5 2 3 6 那麼轉換規則是怎麼樣的呢?規則 從左到右遍歷中綴表示式的每個數字和符號,若是數字就輸出,...

表示式計算

表示式計算 時間限制 1.0s 記憶體限制 256.0mb 問題描述 輸入乙個只包含加減乖除和括號的合法表示式,求表示式的值。其中除表示整除。輸入格式 輸入一行,包含乙個表示式。輸出格式 輸出這個表示式的值。樣例輸入 1 2 3 4 5 樣例輸出 4資料規模和約定 表示式長度不超過100,表示式運算...