Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mercy от Март 28, 2015, 21:31



Название: Перевести строку в математическое выражение
Отправлено: mercy от Март 28, 2015, 21:31
Приветствую, форумчане. Просьба поделиться готовым решением.
Нужно из строки получить математическое выражение(математическую функцию).
К примеру имеется строка "sin(x)+cos(x)", задаю параметр x и получаю на выходе результат.


Название: Re: Перевести строку в математическое выражение
Отправлено: gil9red от Март 28, 2015, 21:55
Что-то такое делал: https://github.com/gil9red/CalculateParser
Тот же аналог, но на питоне (в процессе): https://github.com/gil9red/calc-parser-python


Название: Re: Перевести строку в математическое выражение
Отправлено: mercy от Март 28, 2015, 22:18
Что-то такое делал: https://github.com/gil9red/CalculateParser
Тот же аналог, но на питоне (в процессе): https://github.com/gil9red/calc-parser-python

Спасибо, мне это очень поможет. Жаль что выражение от параметра не зависит, но ничего, это я сам уже доделаю:-)


Название: Re: Перевести строку в математическое выражение
Отправлено: kai666_73 от Март 30, 2015, 18:25
Еще варианты:
  - заюзать flex/bison (lex/yacc)
  - boost::spirit (и иже с ним)

Вкурить, правда, придется не детски, но зато и возможностей несоизмеримо больше.


Название: Re: Перевести строку в математическое выражение
Отправлено: Kurles от Март 30, 2015, 19:02
по-моему полезней для ТС будет прочитать хотя бы в википедии (https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8) про классические алгоритмы и попробовать реализовать самому, благо некоторые из них действительно элементарны.