Discussion:
數學式子的問題
(时间太久无法回复)
taiWANg 亞洲首勝
2006-10-05 01:45:58 UTC
Permalink
1. 使用 JEP API
2. 使用 JavaCC

※ 引述《***@bbs.wretch.cc (活著)》之銘言:
: 我想做一個數學式子運算的程式
: 在使用者輸入方程式的部份
: 想讓使用者可以輸入類似 " 5a + 2b = 12" or "5*a + 2*b = 12"
: 這種字串
: 然後在程式中把這樣子的字串 轉存在陣列中
: 請問有比較好的做法嗎?
: 目前只有很粗淺的想到依序的去讀每一個character 然後判斷是數字還是變數
: 是數字就存進陣列裡面
: 此外就是 想要一個一個去拿String裡面的一個字 應該用什麼方法呢??

--
And I don't think that I'll see her again,
But we shared a moment that will last till the end.
You're beautiful. You're beautiful.
You're beautiful, it's true.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.197.139
KUO=K you all
2006-10-06 00:23:26 UTC
Permalink
我想他要的不是求值(如果沒誤解他的意思的話)
而是Parsing
這算是Compiler技術中的一部份
JEP也是用JavaCC實作的
用JEP就可以拿到計算元, 計算子等AST NODES
如果有特別需求的話就只好用JavaCC
如果要跨語言的就要用ANTLR
有錯請賜教

※ 引述《calais007 (淺水中)》之銘言:
: ※ 引述《***@bbs.wretch.cc (活著)》之銘言:
: : 我想做一個數學式子運算的程式
: : 在使用者輸入方程式的部份
: : 想讓使用者可以輸入類似 " 5a + 2b = 12" or "5*a + 2*b = 12"
: : 這種字串
: : 然後在程式中把這樣子的字串 轉存在陣列中
: : 請問有比較好的做法嗎?
: : 目前只有很粗淺的想到依序的去讀每一個character 然後判斷是數字還是變數
: : 是數字就存進陣列裡面
: : 此外就是 想要一個一個去拿String裡面的一個字 應該用什麼方法呢??
: 這個不是DS常玩的東西
: 玩stack和operator priority的演算法
: 先轉成後置式再做運算的樣子
: 你可以去DS的書找到答案
: 至於怎麼去String找一個字
: 請用String.charAt(int index);

--
And I don't think that I'll see her again,
But we shared a moment that will last till the end.
You're beautiful. You're beautiful.
You're beautiful, it's true.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.160.239
練習!!!!!!!!!!!
2006-10-06 04:14:13 UTC
Permalink
不知道位什麼不能推文@@

JEP的確是我需要的 謝謝W大

不過想請問一下關於JavaCC 剛剛看了一下她的project site

看不太懂他是在做什麼的耶?

是有關token的東西嗎??

(我是Egist XD)
※ 引述《webberhan (KUO=K you all)》之銘言:
: 我想他要的不是求值(如果沒誤解他的意思的話)
: 而是Parsing
: 這算是Compiler技術中的一部份
: JEP也是用JavaCC實作的
: 用JEP就可以拿到計算元, 計算子等AST NODES
: 如果有特別需求的話就只好用JavaCC
: 如果要跨語言的就要用ANTLR
: 有錯請賜教
: ※ 引述《calais007 (淺水中)》之銘言:
: : 這個不是DS常玩的東西
: : 玩stack和operator priority的演算法
: : 先轉成後置式再做運算的樣子
: : 你可以去DS的書找到答案
: : 至於怎麼去String找一個字
: : 請用String.charAt(int index);

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.68.174.176
KUO=K you all
2006-10-06 05:01:54 UTC
Permalink
Compiler要Compile程式碼
首先要先"看懂"程式碼
JavaCC 就是用來做這件事的

說來話長, 有興趣就修Compiler
或看WIKI
http://en.wikipedia.org/wiki/Compiler


※ 引述《paul1005 (練習!!!!!!!!!!!)》之銘言:
: 不知道位什麼不能推文@@
: JEP的確是我需要的 謝謝W大
: 不過想請問一下關於JavaCC 剛剛看了一下她的project site
: 看不太懂他是在做什麼的耶?
: 是有關token的東西嗎??
: (我是Egist XD)
: ※ 引述《webberhan (KUO=K you all)》之銘言:
: : 我想他要的不是求值(如果沒誤解他的意思的話)
: : 而是Parsing
: : 這算是Compiler技術中的一部份
: : JEP也是用JavaCC實作的
: : 用JEP就可以拿到計算元, 計算子等AST NODES
: : 如果有特別需求的話就只好用JavaCC
: : 如果要跨語言的就要用ANTLR
: : 有錯請賜教

--
And I don't think that I'll see her again,
But we shared a moment that will last till the end.
You're beautiful. You're beautiful.
You're beautiful, it's true.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.160.239
Ted
2006-10-10 02:15:35 UTC
Permalink
※ 引述《webberhan (taiWANg 亞洲首勝)》之銘言:
: 1. 使用 JEP API
: 2. 使用 JavaCC
: ※ 引述《***@bbs.wretch.cc (活著)》之銘言:
: : 我想做一個數學式子運算的程式
: : 在使用者輸入方程式的部份
: : 想讓使用者可以輸入類似 " 5a + 2b = 12" or "5*a + 2*b = 12"
: : 這種字串
: : 然後在程式中把這樣子的字串 轉存在陣列中
: : 請問有比較好的做法嗎?
: : 目前只有很粗淺的想到依序的去讀每一個character 然後判斷是數字還是變數
: : 是數字就存進陣列裡面
: : 此外就是 想要一個一個去拿String裡面的一個字 應該用什麼方法呢??

我試了一下JEP~~

它有一個可以畫2d函數的bat檔~~
FunctionPlotter.bat

但是可以自己定義x的範圍嗎?
我是直接去改source code...


還有JEP好像也不支援Min跟Max運算??

還是遇到太數學的問題~~我還是用MATLAB好了?

thx

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.96.83
dEmAgOgUE=陳水扁
2006-10-11 00:44:02 UTC
Permalink
JEP有支援矩陣當參數, 也支援自行定義函式



不過再怎樣都不能跟MATLAB比啦


※ 引述《tedhut (Ted)》之銘言:
: ※ 引述《webberhan (taiWANg 亞洲首勝)》之銘言:
: : 1. 使用 JEP API
: : 2. 使用 JavaCC
: 我試了一下JEP~~
: 它有一個可以畫2d函數的bat檔~~
: FunctionPlotter.bat
: 但是可以自己定義x的範圍嗎?
: 我是直接去改source code...
: 還有JEP好像也不支援Min跟Max運算??
: 還是遇到太數學的問題~~我還是用MATLAB好了?
: thx

--
And I don't think that I'll see her again,
But we shared a moment that will last till the end.
You're beautiful. You're beautiful.
You're beautiful, it's true.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.197.139

Loading...