2016-12-28 3 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}; и если вы хотите, чтобы заменить со значением х вами может использоваться для петли

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