Тема: Сайт групп факультета ИТ МИРЭА :: Лекции и иже с ними

Прислано 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