Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Вычисление формулы


Автор: Komatoz 14.8.2009, 01:33
Есть строка, в которой записано математическое выражение с использованием знаков + - * / может быть еще и скобки..

Существует ли функция на PHP, которая может разобрать эту строку и выдать посчитанное значение?

Автор: Ипатьев 14.8.2009, 06:16
Нет. Функции, которая может разобрать строку с математическим выражением, в PHP нет. Но её несложно написать самому или найти в интернете.

Автор: Komatoz 14.8.2009, 07:59
У опытных случаем не завалялся такой алгоритм?

Автор: skyboy 14.8.2009, 09:47
Цитата(Komatoz @  14.8.2009,  06:59 Найти цитируемый пост)
У опытных

неопытным молчать?
если на производтельность плевать, можно использовать http://php.net/eval.

Автор: Ипатьев 14.8.2009, 10:27
Komatoz, вообще, такое пишут обычно на первом-втором курсе. Для общего развития.  
Понятно, что форум - это место общения производственников, которым надо давать план, а не студентов, интересующихся программированием. Но если, все же, интересно, то можно почитать http://phpclub.ru/detail/article/2002-11-29

skyboy, да ну, какая там производительность, на формуле из 5 символов? А евал, все-таки, с данными, которые чаще всего идут из пользовательского ввода, со всеми вытекающими...

Автор: Komatoz 18.8.2009, 00:58
Цитата

такое пишут обычно на первом-втором курсе


Сомневаюсь, что написали правильно..

Спасибо за ссылочку, сам не нашел бы..

Автор: Ипатьев 18.8.2009, 07:36
Цитата(Komatoz @  18.8.2009,  00:58 Найти цитируемый пост)
Сомневаюсь, что написали правильно..

Как это? А в чем проблема написать правильно такой небольшой по объему входящих данных алгоритм? Ведь очень легко проверить его работу, и внести испраления, если потребуется.

Цитата(Komatoz @  18.8.2009,  00:58 Найти цитируемый пост)
Спасибо за ссылочку,

Хм. Точно спасибо? Там же ведь решения нет. Я думал - есть, а потом прочел повнимательнее. 

Автор: SoWa 18.8.2009, 07:49
Komatoz, Советую сперва изучить матчасть.
Ты можешь изголяться и придумывать свои алгоритмы, и мб даже до графов догадаешься, но умные люди изобрели велосипед давно до нас: http://ru.wikipedia.org/wiki/Обратная_польская_запись
Вот тебе ссылка на замечательное решение твоей задачи.
Так-же бонусом внизу приведен код на Дельфи, а поиск в Гугле даст тебе пару ссылок на исходники в С++. Переписать в ПХП думаю будет легко ;)

 smile 
Ипатьев
Цитата(Ипатьев @  14.8.2009,  10:27 Найти цитируемый пост)
Понятно, что форум - это место общения производственников, которым надо давать план, а не студентов, интересующихся программированием.

 smile 
Говори за себя, ок? Тут много хороших людей, кто еще школу не закончил.
 smile 

Автор: Ипатьев 18.8.2009, 07:55
Цитата(SoWa @  18.8.2009,  07:49 Найти цитируемый пост)
Говори за себя, ок? 

Я говорю за то, что вижу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)