最簡單的計算器 表示式計算改進

2021-04-17 11:33:50 字數 947 閱讀 2626

using system;

using system.collections.generic;

using system.text;

using system.collections;

namespace 最簡單計算器

}class computer

int idx = -1;// suffixalexp的下標

bool isnumend = true;// 數字分隔指示

hashtable isp = new hashtable();// 棧內優先順序

hashtable icp = new hashtable();// 棧外優先順序

isp.add('#', 0);

isp.add('(', 1);

isp.add('+', 3);

isp.add('-', 3);

isp.add('*', 5);

isp.add('/', 5);

isp.add(')', 6);

icp.add('#', 0);

icp.add('(', 6);

icp.add('+', 2);

icp.add('-', 2);

icp.add('*', 4);

icp.add('/', 4);

icp.add(')', 1);

stack[++top] = '#';

// 到此中綴已轉換為字尾,放在suffixalexp中,idx最後指示的符號是#

// 下面開始計算此字尾表示式

double statckdou = new double[idx];// 存放運算元

top = -1; // 指示statckdou的棧頂

for (i = 0; i < idx; i++)

}console.writeline(statckdou[top]);}}

}

表示式計算器

早在上大學的時候,就想編寫乙個可以計算數學表示式的計算器,因為windowsxp自帶的計算器不支援表示式輸入,當要計算乙個算式時,不太方便。表示式計算器看似簡單,但要想把它做完善,不太容易,經過幾次改進之後,於一年前完成了這個小程式,雖然可能會有一些不足,不過也不打算再投入時間了,價值不大,只是拿來...

計算器 字尾表示式

不過目前這個功能太少,而且能算的十分有限,測試輸入為 4 4 5 3 測試輸出為 4 4 5 3 27 主要就是了解一下怎麼把中綴表示式轉化成字尾表示式,然後再利用字尾表示式求值,我後續會完善這個程式,做個真正意義上的計算器。o o 轉化步驟我搜尋了一下,大致如下 將中綴表示式轉換為等價的字尾表示式...

中綴表示式計算器

假如給定乙個中綴表示式 1 2 3 4 10 5利用棧就可以匯出字尾表示式123 4 105 當得到乙個字尾表示式時就很容易的求出表示式的值了,也是用棧計算的,對於123 4 105 從前往後,如果遇到運算元的時候直接入棧,遇到操作符,就從棧中彈出兩個操作,那下面的跟上面的那個預算,就可以得到123...