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...