Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Фразы в Pascal'е

3.9K
06 февраля 2005 года
alexeyan
32 / / 03.01.2005
Уважаемые програмера подскажите мне как сделать чтобы программа понимала вводимые фразы, например: я ввожу "4+5" а программа выдает ответ "9". Причем она должна не ограничиваться одним действием. Заранее спасибо.
301
06 февраля 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by alexeyan
Уважаемые програмера подскажите мне как сделать чтобы программа понимала вводимые фразы, например: я ввожу "4+5" а программа выдает ответ "9". Причем она должна не ограничиваться одним действием. Заранее спасибо.


(4+5)*13
Разбиваешь строку на лексемы ("(","4","+","5",")","*","13") строишь дерево

 
Код:
*
   / \
  +  13
 / \
4   5

поднимаясь по нему, считаешь. Вот.
1.7K
06 февраля 2005 года
Envel
206 / / 29.11.2004
Уже постил, но не помню где. Реализует рекурсивно-нисходящий алгоритм разбора выражений. Понимает даже функции (tan,sin,cos и др.). Для работы требуется только включить parser.h в свою программу и добавить в проект parser.cpp, также требует некоторые стандартные библиотеки для компиляции (проблем возникнуть не должно). Ошибки обрабатываются с помощью механизма throw-catch.
p.s. русские сообщения об ошибках в кодировке cp1251
Думаю, если избавиться от механизма исключений легко переделать на паскале (там мало очень специфических для С/C++ конструкций).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог