Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Формульный калькулятор на PHP

Этот калькулятор является демонстрационной "мордой" для класса Natty_Calc, предназначенного для широкого круга задач, связанных с парсингом и вычислением формул, заданных пользователями сайта.

Класс является универсальным, поддерживает переменные и их диапазоны. За образец синтаксиса формул взят MSExel/OOCalc. В настоящий момент Natty_Calc поддерживает более полусотни математических и логических функций MSExel/OOCalc.

Скачать Natty_Calc можно здесь. Со всем вниманием отнесусь к предложениям по развитию калькулятора и сообщениям о багах.

Биржа долевых инвестиций SIMEX.

Публикация сокращена для удобства обсуждения.
Полная версия: Формульный калькулятор на PHP

Метки материала: калькулятор, формулы, Natty_Calc, PHP, скрипт PHP


28 комментариев

25.09.2007 09:47:50 #
Internet Explorer Гость Sukhov
Давно в голове литала идея реализовать на php обратную польскую натацию, люблю я её, на ней изучал c++ Well. Лично мне пока это ни где не пригодить, но в закладки поставил, вещь полезная.
 
Павел.
P.S. xBB & Editor пользуюсь, доволен. Удачи.
25.09.2007 12:26:46 #
Mozilla Firefox dima
Спасибо.
 
Свой обработчик формул решил написать после прочтения темы на ПХПКлубе, в которой такая задача не получила решения. Поиск дал очень немного.
 
Вот ситуации, в которых мой класс мог бы реально помочь:
  1. Редактор формул, технология написания;
     
  2. подсчет формулы;
     
  3. нужен калькулятор;
     
  4. Проверка исполяемого кода в eval.

Вот список аналогов моего калькулятора:
  1. a.calc - поддерживает переменные и арифметические действия. Не поддерживает функции и работу со строками и логическими выражениями;
     
  2. Math_RPN - поддерживает математические функции. Не поддерживает переменные и работу со строками и логическими выражениями.
     
  3. "Парсер на РНР - это возможно!" - Статья о написании парсера, проиллюстрированная классом для вычисления арифметических выражений. Нет функций и переменных.
     
  4. Википедия:Функции парсера - Отличная вещь, но с очень своеобразным синтаксисом.

В общем, сработал принцип "Сделай сам" Well Пример применения.
15.04.2008 13:56:04 #
Mozilla Firefox Гость Arman
Димич, было бы шикарно реализовать этот кальк без перезагрузки страницы при вычислениях ;)
15.04.2008 17:03:01 #
Mozilla Firefox dima
Ну, это к собственно либе отношения не имеет. Ajax - фронтентд. Natty_Calc - бакенд. И вместе им не сойтись Well
 
В смысле, что не хочу писать какого либо визуала, чтобы граждане не думали, что калькулятор только этим визуалом и ограничен.
 
А в принципе, кому надо - ажакс в руки.
26.12.2009 04:57:44 #
Mozilla Firefox Гость savedlife
добрый день. очень интересует функция цикла while. если вам не очень сложно, помогите пожалуйста ее доделать..а то я пробую но никак не получается..
 
спасибо ;)
26.12.2009 14:12:31 #
Mozilla Firefox dima
А каков должен быть синтаксис у этой функции? Покажите пример выражения с использованием такой функции.
 
Искал аналог в OO Calc. Не нашел.
09.08.2010 14:28:31 #
Opera Гость RUSich
Автору огромнейший респект. Сейчас делаю компонент для joomla. Думал придеться заморачиваться, свой писать, а тут загуглил и наткнулся на ваше творение. Очень помогло. Единственное - это то что мне надо работать в линейном списке парраметров с произвольными(почти) именами, а у вас модель exel с 2х мерным списком параметров. Но урезать функциональность не сложно (просто написал класс оболочку...)
10.08.2010 08:26:44 #
Mozilla Firefox dima
Рад, что Вам пригодилось Well А для каких задач?
18.08.2010 10:50:00 #
Opera Гость RUSich
так сразу даже как-то не опишешь. Делаю что то вроде интернет магазина, но у товаров цена не фиксированная, а расчитываеться по формуле. Формулу вводит администратор, а параметры пользователи.
18.08.2010 11:12:31 #
Mozilla Firefox dima
Интересно. Продвинутый у вас заказчик Well Когда я только-только опубликовал скрипт, мне говорили, что он останется невостребованным, так как в Вебе нет задач, для которых он мог бы понадобиться. Рад, что такие задачи появились.

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.