Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Разбор и Анализ Строк    >>    calk
   
 
 Калькулятор на базе Обратной Польской Записи   Eugene Lirnic 26.06.1996

ПРОСТЕЙШАЯ разгребалка выражений методом рекурсивного спуска, (обратная польская запись) никаких наворотов, никаких проверок, четыре операции, без поддержки функций и переменных, входная строка не должна содержать пробелов и прочих лишних символов, числа только -255..+255... Только СКЕЛЕТ... Хотя там все просто и наглядно, и расширяется она проще простого...



3k 
 

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 по польской записи считает значение... Что такое есть выражение? Выражение = Терм [ + Терм | - Терм] Терм = Фактор [ / Фактор | * Фактор] Фактор = число | выражение Выглядит слишком заморочено ? Человеческим языком это выглядит приблизи- тельно так: смотрим, что есть наше выражение, сумма или разность чего-то... если да, то т