2013-04-04 19 views
1

我想在Pascal中構建一個程序來區分數學函數。它的工作非常好(計算最小/最大,對稱性,圖形繪製等),但我必須把功能(即X^3 + 3×+ 2)到源代碼:如何閱讀用戶定義的數學函數

function f(x : real): real; 
begin 
    f := x * x * x + 3 * x + 2; 
end; 

不過,我希望用戶定義要區分的功能。顯然readln函數沒有幫助。 有人告訴我唯一的解決方案將是一個特定的解析器。但這非常困難,我不知道該怎麼做。 我的想法是將函數提取到* .txt文件中,以便可以輕鬆更改。那可能嗎? 有人可以告訴我一個可以解決這個問題的解析器,或者有任何其他的一些很好的解決方案嗎? 我真的很感謝你的幫助! 在此先感謝;)

+0

這是沒有必要把同樣的信息在你的標題,你正在放入標籤。這裏的標籤系統工作得很好,並試圖通過將其添加到主題中來幫助它,這隻會導致混亂。請不要這樣做。謝謝。 – 2013-04-04 17:20:45

+0

這裏的一些信息:http://stackoverflow.com/questions/1326258/mathematical-expression-parser-in-delphi – 2013-04-04 17:21:47

+0

@KenWhite對不起,我是新來的:) – user2245896 2013-04-04 17:25:22

回答

0

免費Pascal附帶symbolic軟件包,它具有數學表達式的解析器和評估器。你可以用這個作爲起點。查看documentation的使用情況。

0

也有許多解析器/ evalutaors上SWAG

我粗體顯示了我認爲最有用的那些。我認爲他們中的任何一個都不像我其他答案中的符號包那麼完整,但是如果您需要幫助,他們可能值得閱讀。

(所有這一切都是相當老的代碼。除非另有說明,用SWAG的規則是把這個東西作爲具有全新風格的BSD許可證)