|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.07.2013, 10:42 | #1 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Текстовый калькулятор
Нужна такая вот штука:
В строке X введено какое-то выражение, скажем 14-3*4+2, а программа решает это выражение и выдает результат в строку X. Как просто складывать, вычитать, а также умножать и делить слева на право, я понял. Т.е. 3+5-7 у меня пишет 1, но выражение выше пишет 46, вместо 0. Как заставить программу учитывать скобки, знаки умножения и деления? Вот в чем вопрос... Извиняюсь, если когда-то где-то кто-то уже это спросил. |
04.07.2013, 11:12 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Спрашивали неоднократно.
Пишите свой парсер строковых математических выражений, или ищите готовый в сети. Он пишется довольно просто. Есть операторы, цифры и модификаторы. Операторы: +, -, *, \ Цифры 2 типов: целые, дробные, и 3 категории: положительные и отрицательные и просто нуль. Модификаторы: Всякие скобки и им подобные, они влияют на расстановку приоритетов и порядок решения. Например: 2 * 2 + 3 = 6 Если докинуть скобок: 2 * (2 + 3) = 10 У каждого элемента есть: порядок(приоритет) решения, положение в строке. Хотя достаточно это прописать операторам т.к. у них есть левая и правая части с которыми делается что-то. |
04.07.2013, 11:23 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если свой парсер, то ищите польская запись или польская нотация
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
04.07.2013, 11:55 | #4 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Нашел парсер пользователя Serge_Blyzhnikov вот здесь вот. Пока не тестировал, но по описанию мне подходит.
Делаю нечто похожее на DOS. Назвал WinDOS. Уже и псевдо-компилятор со своим языком прикрутил, есть аналог процедур консоли writeln и printf, процедура draw, рисующая картинку из пути по координатам, цикл for. Но захотелось, чтобы картинка и for круче работали. К примеру, загрузка картинки со смещением 50 пикселов по иксу. Парсер позже проверю, отпишусь, если подойдет, прикручу к WinDOS, а сам WinDOS выложу здесь. То, что пишется просто, мне кажется, что просто на этапе операторов +-*/. А дальше все.. Мое понимание того что я пишу постепенно пропадает:D Блин, этот парсер под C. Нашел вне форума пару парсеров, проверю их. Последний раз редактировалось ruN00b; 04.07.2013 в 12:02. |
04.07.2013, 12:32 | #6 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Armorer, спасибо, проверю, отпишусь!
|
04.07.2013, 12:58 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
EXPRUS.rar — это "чистый" Паскаль ("чистый" - потому как писалось это всё ещё под turbo pascal под DOS) |
|
04.07.2013, 14:11 | #8 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Пасиб, просто тема находилась в разделе Си, я и подумал, что это сишка. Ну, тогда попроще, а то я пусть и знаю Си, но ооочень плохо.
|
06.07.2013, 22:15 | #9 |
Почетный нуб
Форумчанин
Регистрация: 07.05.2013
Сообщений: 155
|
Парсер не подошел. Попытаюсь сделать свой.
Вот программка (WinDOS). Помощь по командам: вводим help и жмем Enter Редактор (компилятором стыдно назвать) "языка программирования": вводим wdc и жмем Enter Открыть проект в редакторе: последняя строка - всегда название файла, как для сохранения, так и для загрузки. Просто вводим название нужного проекта (примеры хранятся вместе с экзешником под форматом .wdc). Открыть проект в WinDOS: вводим wdc open <имя файла без типа> и жмем Enter Некоторые примеры не работают, либо работают некорректно. Скачать: Яндекс.Диск |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Калькулятор | Djeka(c) | Общие вопросы Delphi | 6 | 18.05.2012 10:56 |
Комментарии к листингу(калькулятор,текстовый редактор) С++ Builder | lexoff | Помощь студентам | 2 | 30.05.2011 19:31 |
Калькулятор на с++ | Banner | Помощь студентам | 2 | 07.02.2011 11:42 |
калькулятор! | Чика | Общие вопросы Delphi | 7 | 07.10.2010 18:05 |
Текстовый файл в текстовый массив | Kimimaru | Общие вопросы C/C++ | 1 | 02.12.2007 11:55 |