Прислано dhmhd 28.03.2012 04:12
#11
Вот мое решение.
Примет цепочку выражений разделенных запятой(просто для "эстетики", запятая, ровно как пробел и знаки табуляции будет пропущена лексером):
"abs = 123, sa = sin(pi/2), d = abs/sa, write(d);"
Написал на C, так как знаю его лучше всего.
Использовал float.
Имена переменных не могут содержать цифр.
Переменные в хеш-таблице с цепочками(по умолчанию всего 10 ячеек).
Функции: sin(), cos(), write().
+, -
*, /
x^y - x в степени y
x%y - корень из y степени x.
-, + - минус и плюс унарные
(, )
для компиляции под Windows понадобиться mingw
$ mingw32-make -f Makefile.win
для компиляции под Linux понадобиться gcc, make
$ make
Запуск math_parser.
math_parser_src[v0.1.1].zip - исходники
math_parser_bin_win32[v0.1.1].zip - виндовый бинарь
Редактировал dhmhd 28.03.2012 05:41