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


Автор: peter86 6.4.2008, 18:58
Есть строка, в ней записано выражение по правилам языка Паскаль,
например:
  12+sin(pi/5+ln(1))+exp(3).
Нужно написать программу, которая вычисляет значение выражения. 
Все бы ничего, но в строке могут быть функции, которые содержат в себе другие функции,
например: exp(ln(sin(1))). Так вот, как вычислять значение таких функций?

Автор: ama_kid 6.4.2008, 19:09
Цитата(peter86 @  6.4.2008,  18:58 Найти цитируемый пост)
Так вот, как вычислять значение таких функций? 
Парсинг строки тебе поможет. Посмотри http://pascal.sources.ru/parsing/index.htm, в частности, http://pascal.sources.ru/parsing/swexpr.htm модуль

Автор: ILyAHA 7.4.2008, 19:41
тебе нужно писать тогда небольшой интерпретатор.... лучше для преобразования из строки в "последовательность кода" используй обратную польскую запись

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