2016-12-28 34 views
0

對於我的項目,我應該在給定函數作爲輸入的情況下在java中創建一個圖形計算器(圖形圖)。我已經想出了一種正確繪製函數的方法。但是我想不出一種讓口譯員理解功能的方法。如果我能夠使它能夠存儲每個函數項的含義,例如函數f(x)= x^2 -1需要理解爲Math.pow(x,2) - 1,我可以從那裏出發。如何讓java的解釋器將Math.pow理解爲Math.pow?

無論如何,我可以將函數的含義存儲爲知道該函數可以變化的一組方法。

+0

搜索「調車碼算法」。你將在那裏得到你的解決方案;-) –

+0

Java是一種**編譯的**語言(對於字節碼,但它不是經典的解釋型語言)。沒有'eval'。所以你必須實現一個解釋器。您可能會執行一些正則表達式並將其傳遞給內置的Java JavaScript解釋器(除非您僅使用它來驗證*您自己的解決方案,否則我不會期望通過等級)。 –

+0

您將需要構建某種解析器, –

回答

1

如果只處理多項式可以將係數存儲在數組中,則例如提到的功能將是{1,0,-1} double [] coefficient = {1,0,-1}; ,如果你想用X你的值來代替可用於循環

int function; 
int x = 5; 
for(int i = 0; i < coefficient.length(); i++) 
    function += coefficient[i]*Math.pow(x, coefficient.length() - i);