Работа с введенными формулами - вопрос №168474

Здравствуйте.

У меня такой вопрос: как использовать формулу для вычисления, введенную в TEdit?

Например я ввожу в поле Edit 'sin(x)' в другой Edit значение X и мне соответственно нужно программно извлечь формулу из edit'а, либо посчитать значение в нём… Подскажите как это реализовать?

Заранее благодарен



Дополнение автора от 24.12.11 21:11:37

Речь идёт о неизвестной программисту формуле, то есть у меня есть на форме компонент TChart и компонент TEdit в который пользователь вводит функцию
(y=f(X) к примеру), соответственно необходим код позволяющий выщитывать значения функции при определённых иксах для построения графика функции...
Я думал над вариантом перебора всех символов и через case расшифровки текста формулы переводя её в понятный для делфи язык... 

22.12.11
2 ответа

Ответы

Еслли задача имнно в вычислении какойто функции от одного аргумента то if вам в помощь. просто проверяйте что ввел пользвоатель. а если нужно решать формулу то это задача то вс енамного сложнее.Нужно паресрить вырыжение провидть к обратной польской записи, строить деревой операций и уже по нему сичтать.

24.12.11

как упомянул коллега ранее, это и называется парсингhttp://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7 

в своей формулировке вопроса Вы говорите о распознавании произвольной математической формулы. но это не тривиальная задача. простого короткого совета нет. пробуйте любые варианты, так даже быстрее поймете в чем суть..

скажем так — не надо перебирать все возможные символы. для начала ограничте возможности пользователя 2-3 функциями на свой вкус, базовыми арифметическими операциями "+" "-" "*" "/" "=" и однобуквенными переменными..

в процессе реализации придет и понимание задачи в более общем виде

можете поискать примеры исходного кода по словам

«калькулятор на делфи»

«парсинг формул на делфи»

но собственный опыт полезнее. в том числе понять чужой код который делает уже что то достаточно серьезное проще имея свой минимальный опыт

24.12.11
Посмотреть всех экспертов из раздела Технологии > Delphi
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store