專利名稱:一種多功能計算器計算方式的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機應(yīng)用領(lǐng)域,是一種基于編譯原理的表達(dá)式計算方法,本方法是基于編譯原理下的計算出各種公式,此系統(tǒng)不僅包含計算機自帶的計算器的全部功能,還包括基本的算術(shù)運算,比如加減運算等。同時它還具有科學(xué)計算器的功能,比如對數(shù)運算和階乘運算等功能,是一種不可多得的應(yīng)用程序。
背景技術(shù):
在計算機里,我們用得最多的計算器就是Windows自帶的那個計算器了。該計算器當(dāng)然有不少值得學(xué)習(xí)的功能,如進(jìn)制轉(zhuǎn)換、三角函數(shù)計算、指數(shù)運算、冪運算等,但有一個令人遺憾的功能就是不能輸入表達(dá)式進(jìn)行計算(我們看到的永遠(yuǎn)只是一個中間結(jié)果),往往我們用起來的時候必須先把要計算的表達(dá)式寫下來,然后一個一個的輸入,如果一不小心輸錯了,就只能重新輸入,這對于普通用戶來說是個不小的考驗。
發(fā)明內(nèi)容
此系統(tǒng)主要是根據(jù)計算機內(nèi)部的函數(shù)進(jìn)行運算,在運算過程序中自動的識別一些數(shù)學(xué)符號,根據(jù)數(shù)學(xué)運算規(guī)則進(jìn)行自動計算表達(dá)式,支持?jǐn)?shù)學(xué)中的正弦函數(shù)(sin)、余弦函數(shù)(cos)、正切(tg)、余切(ctg)、指數(shù)函數(shù)(exp)、平方根函數(shù)(sqr)、開平方根函數(shù) (sqrt)、對數(shù)函數(shù)(log)、反正弦函數(shù)(asin)、反余弦函數(shù)(acos)、反正切(atg)、反余切 (actg)等一些三角函數(shù),同時也支持操作符+,_,*,/,~ (乘方);絕對值采用lexpresion 格式;小數(shù)點用round函數(shù)進(jìn)行四舍五入;小數(shù)點后取整函數(shù)用Trunc。表達(dá)式計算器可以同時進(jìn)行數(shù)學(xué)公式的混合運算,在需要在輸入框中輸入表達(dá)式 expresion就可以得出正確的數(shù)值。
權(quán)利要求
1. 一種多功能計算器計算方式,其特征在于其詞法分析模塊的功能負(fù)責(zé)對用戶輸入的表達(dá)式進(jìn)行分詞處理,把每一個合法符號 (包括數(shù))存入一個特定的存儲結(jié)構(gòu)中,能夠供之后的文法分析模塊和計算模塊使用,如果發(fā)現(xiàn)非法符號馬上停止處理,報錯。如果運算符棧頂?shù)倪\算符優(yōu)先級高于或等于當(dāng)前讀入的運算符優(yōu)先級,則彈出棧頂運算符,同時從數(shù)棧彈出相應(yīng)數(shù)量的操作數(shù)進(jìn)行運算,將運算結(jié)果壓入數(shù)棧,最后把當(dāng)前運算符壓入運算符棧。如果運算符棧頂?shù)倪\算符優(yōu)先級低于當(dāng)前讀入的運算符的優(yōu)先級,則直接壓入當(dāng)前運算符到運算符棧。如果當(dāng)前運算符為’)’,則彈出運算符棧中的運算符進(jìn)行相應(yīng)的運算,直到彈出的運算符是’(’為止。如果當(dāng)前運算符為’(’,則直接把’(’壓入運算符棧要注意這種算法在完成了分詞結(jié)果的掃描之后,大多數(shù)情況下會在運算符棧和數(shù)符棧中留下未運算的運算符和數(shù)符,因此要依次彈出運算符和數(shù)符進(jìn)行運算,直到棧頂出現(xiàn)# 為止,因此在表達(dá)式中最后不使用#結(jié)尾,否則可能導(dǎo)致提前結(jié)束運算。
全文摘要
一種多功能計算器計算方式是根據(jù)計算機內(nèi)部的函數(shù)進(jìn)行運算,在運算過程序中自動的識別一些數(shù)學(xué)符號,根據(jù)數(shù)學(xué)運算規(guī)則進(jìn)行自動計算表達(dá)式,支持?jǐn)?shù)學(xué)中的正弦函數(shù)(sin)、余弦函數(shù)(cos)、正切(tg)、余切(ctg)、指數(shù)函數(shù)(exp)、平方根函數(shù)(sqr)、開平方根函數(shù)(sqrt)、對數(shù)函數(shù)(log)、反正弦函數(shù)(asin)、反余弦函數(shù)(acos)、反正切(atg)、反余切(actg)等一些三角函數(shù),同時也支持操作符+,-,*,/,^(乘方);絕對值采用|expresion|格式;小數(shù)點用round函數(shù)進(jìn)行四舍五入;小數(shù)點后取整函數(shù)用Trunc。此方式可以同時進(jìn)行數(shù)學(xué)公式的混合運算,在需要在輸入框中輸入表達(dá)式expresion就可以得出正確的數(shù)值。
文檔編號G06F15/02GK102455990SQ20101052056
公開日2012年5月16日 申請日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者楊際榮 申請人:鎮(zhèn)江華揚信息科技有限公司