From : Eugene Lirnic 2:463/158.18 26 Jun 96 17:16:00
To : All
Subj : Re: Обратная польская запись
--------------------------------------------------------------------------------
: Извини, по своей криворукости почикал базу, поэтому квотить нечего ;)
: Ты мне на днях посоветовал использовать subj, а я совсем не знаю что это
: такое, как работает и как мне это поможет ;) Если не трудно - расскажи plz,
: хотя
: бы идею этой самой записи.
Блин, сердце кровью обливается глядеть как ты мучаешься... Короче,
переборол я жуткий облом и накалякал тебе кой-чего...
Короче, сие ПРОСТЕЙШАЯ разгребалка выражений методом рекурсивного спуска,
никаких наворотов, никаких проверок, четыре операции, без поддержки функций
и переменных, входная строка не должна содержать пробелов и прочих лишних
символов, числа только -255..+255... Только СКЕЛЕТ...Хотя тама все просто и
наглядно (IMHO) и расширяется она проще простого... Будет че непонятно,
пиши... Да и если понятно будет тоже пиши (нетмылом:) все-таки я потратил на
нее целый час своего времени :))
2Moderator: Вообще то эта тема всплывает регулярно, вот я решил прямо в
эху... Я надеюсь, что я никому не наврежу маленьким 2-х килобайтным ююком..
Короче, дело было так: тут две функции - Parse разбирает выражение, и пере-
водит его в польскую запись, Calc по польской записи считает значение...
Что такое есть выражение?
Выражение = Терм [ + Терм | - Терм]
Терм = Фактор [ / Фактор | * Фактор]
Фактор = число | выражение
Выглядит слишком заморочено ? Человеческим языком это выглядит приблизи-
тельно так: смотрим, что есть наше выражение, сумма или разность чего-то...
если да, то т
|