Как можно преобразовать строковый ввод в формулу

  • Автор темы Lexxxx
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

Lexxxx

Гость
#1
Здравствуйте!

У меня такой вопрос как можно осуществить в программе преобразование строкового ввода формулы в саму формулу... Т.е. на подобе программ Advanced Graphier или 3D Graphier когда вводишь формулу строкой, а она потом строила по ним графики... Для меня в принципе графики строить не обязательно, нужно только само преобразование и затем что бы с этой формулой можно было рабоать...

В принципе я себе представляю это так

Создаю функцию в ней символьный массив и заполняю ее функцией cin.getchar, а затем с помощью ветвелний if и switch...case сопоставляю аналоги, а вот что дальше... Во-первых у меня не получается идентифицировать функции по типу cos и sin, точнее получается, но потом неполучается соединить их в общей формуле. Во-вторых как передавать общую формулу как массив или рабоать с ней через указатели. В принципе этот с пособ работает с простыми формулами.... Подскажите пожайлуста способы для более сложных формул. И еще как можно реализовать функции ln (логарифма не важно какого). Буду очень признателен. Заранее спаибо...
 

shisik

Well-Known Member
26.08.2007
154
0
#2
Я так понимаю, вас интересуют алгоритмы синтаксического разбора, что-то вроде самого компилятора C++. Про принципы построения подобных аглоритмов можно почитать здесь _http://forums.realcoding.net/index.php?showtopic=9005
 
A

Azrael

Гость
#3
Google "Обратная польская запись", "Обратная польская нотация".
 
L

Lexxxx

Гость
#4
Спасибо, но это не совсем, что мне нужно... Мне просто надо перевести строку в формулу, что бы компилятор ее понял и все...
 
P

Pasha

Гость
#5
Для: Lexxxx
Что значит "компилятор ее понял"? Смог вычислить при заданных значениях параметров? Тогда читай еще раз про ОПЗ.
А логарифм вычисляется через log или log10.
 
Статус
Закрыто для дальнейших ответов.