Xwab
Форумыnavigate_nextПрограммирование на PHP

Обработка математических выражений
Сообщения
Lexan

Допустим, юзер передаёт через post скрипту функцию
y = ((5-x^2)^3)/(2*sqrt(x)) и значение x = 5, нужно вывести y при x = 5. вопрос в том как можно средствами php разобрать выражение, представляющее собой СТРОКУ "((5-x^2)^3)/(2*sqrt(x))", где знак ^ - возведение в степень, / - деление и с учетом скобок? гугл ничего не дал


__________
посл.ред. 19 Июн 2011, 23:49; всего 1 раз 19 Июн 2011, 23:26
NiceCat

LeXaN, а степень умножением заменить нельзя?

19 Июн 2011, 23:29
Lexan

NiceCat, можно всё, но не в этом вопрос. Мне необходимо заставить работать php со строкой (а не набором цифр, операторов, переменных), как с математическим выражением.


__________
посл.ред. 19 Июн 2011, 23:54; всего 1 раз 19 Июн 2011, 23:30
Okula

Посмотри раздел про математические функции http://php.su/functions/?cat=math

19 Июн 2011, 23:31
NiceCat

y=(((5-x*x)(5-x*x)(5-x*x))/(2-sqrt(x)) , это будет работать?

19 Июн 2011, 23:35
Lexan

NiceCat, ты ни о чём.

19 Июн 2011, 23:42
Replikon

Старый добрый парсер на регулярках.
А вообще, это ты сложную шутку замутил.
Нужен полноценный синтаксический анализатор.
Гугли про синтаксические анализаторы и смотри анализаторы не нативных шаблонизаторов и т.п.

20 Июн 2011, 7:48
iceman12

Проще nigma грабить

20 Июн 2011, 11:06
Lexan

Я всё-таки сумел реализовать данную задумку без всяких грабов, причем с выводом хода решения.
Кому интересно, вот ссылка
http://nafive.ru/services/calc/

23 Июн 2011, 21:23
Mars

я когда для себя подобное делал, я делал через exec()

24 Июн 2011, 1:57
Ответить на тему