Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
#1

Очередь команд - C++

23.05.2011, 11:55. Просмотров 809. Ответов 6
Метки нет (Все метки)

Доброго врмени суток.
Проблема собственно в следующем: как можно на с++ сделать очередь команд?
Т.е. допустим в консоли вводится что-то вроде
C++
1
"8432.28 + 9.7e3"
так вот, после прочтения строки было бы неплохо вызвать конструкторы разных классов, записав результат в массиве абстрактного базового класса, а потом вызвать операцию сложения...

Я собственно не понимаю какой тап данных будет в ней храниться (void*???) и как записывать в нее адреса методов класса, если кто подскажет, буду признателен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2011, 11:55     Очередь команд
Посмотрите здесь:

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете - C++
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент времени происходит одно из событий:...

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Задача на очередь (вывод сообщения, что очередь пуста) - C++
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы выводил сообщение, что очередь пуста.....

Создать очередь. Добавить элемент в очередь. Удалить элемент из очереди - C++
Нужно создать очередь. Добавить элемент в очередь. Удалить элемент из очереди. Вот моё "творение". int main() { int...

разрядность команд - C++
Добрый день, Всех с праздником! Подскажите, пожалуйста, определение термина "разрядность команд". P.S. искал в интернете, ничего...

Анализатор команд - C++
помогите написать анализатор команд на с++

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
23.05.2011, 11:57     Очередь команд #2
Почитайте Страуструпа
Там есть пример такого калькулятора, как раз начал его читать
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
23.05.2011, 11:59     Очередь команд #3
Глупец, можно парсить строку, приводить ее к обратной польской записи и уже потом вычислять. Я уже когда-то писал подобный велосипед, если хочешь, могу поискать.

Не по теме:

Блин, написал ответ, а такое ощущение, что обозвал...

Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
23.05.2011, 12:08  [ТС]     Очередь команд #4
Покажи пожалуйста, а то я не совсем понял, что ты имел ввиду под "польской записью"))
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
23.05.2011, 12:32     Очередь команд #5
Цитата Сообщение от Глупец Посмотреть сообщение
а то я не совсем понял, что ты имел ввиду под "польской записью"))
ищи в википедии и гугле по ключевым словам "обратная польская запись".
Вот моя лабораторка - разбор и вычисление логических выражений (работает с целыми числами, операторами > ("Больше"), < ("Меньше"), ! ("Не"), = ("Равно"), & ("И"), | ("Или"), константами true и false, скобками переопределяется приоритет операций)
lab4.zip
Выражения задаются как аргументы командной строки.
Пример использования
Код
[nameless@desktop lab4]$ ./lab4 \
> '!(3 > 4) & (3 = 4 | 4 < 5) & (4 = 4 & true)' \
> ' > 3' \
> 'true & !true' \
> '() 3 > 2' \
> '' \
> '3 99 = 99' \
> 'false | !false' \
> '4 + 5 = 9'
Вычисляем выражение '!(3 > 4) & (3 = 4 | 4 < 5) & (4 = 4 & true)':
Результат: 1 (true)

Вычисляем выражение ' > 3':
pstack: ошибка чтения - стек пуст
Неожиданная ошибка возле токена '>'
Невозможно вычислить выражение из-за возникших ошибок

Вычисляем выражение 'true & !true':
Результат: 0 (false)

Вычисляем выражение '() 3 > 2':
Ошибка: пустые скобочные конструкции запрещены
Невозможно вычислить выражение из-за возникших ошибок

Вычисляем выражение '':
Ошибка: попытка вычислить пустое выражение
Невозможно вычислить выражение из-за возникших ошибок

Вычисляем выражение '3 99 = 99':
Ошибка: не удалось разобрать выражение
Невозможно вычислить выражение из-за возникших ошибок

Вычисляем выражение 'false | !false':
Результат: 1 (true)

Вычисляем выражение '4 + 5 = 9':
Ошибка: неизвестная лексема '+'
Невозможно вычислить выражение из-за возникших ошибок

Всего выражений: 8
Успешно вычислено: 3
Не удалось вычислить: 5
[nameless@desktop lab4]$
Глупец
23 / 23 / 1
Регистрация: 17.05.2011
Сообщений: 141
23.05.2011, 12:36  [ТС]     Очередь команд #6
Спсибо большое, буду разбирать)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 12:45     Очередь команд
Еще ссылки по теме:

Отправка команд в консоль - C++
Здравствуйте, мне надо отправить в консоль команду, взятую из Edit1, Edit2, Edit3. Немного почитал об этом, но не нашёл именно того, что...

Простой интерпретатор команд - C++
Всем привет. недавно понадобилось динамики добавить из инишника. поискал парсер сценариев, ниче подходящего не нашел (может плохо...

Получение команд из CMD - C++
Собственно, есть тривиальная задача написания программы на С++ с CLI(не путать с C++/CLI мелко-мягких). Прога задумывается под две ОС:...

Чтение команд из файла - C++
Есть файл в нем могут быть комманды:Add 30, Ads 5, End, Equ, Tos. Ads 5 - создаём контейнер. Add 30 - добавляем в контейнер 30 Так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
23.05.2011, 12:45     Очередь команд #7
Вот обычный калькулятор (немного больше быдлокода): http://www.cyberforum.ru/cpp-experts...tml#post897782 - обычные арифметические операции + несколько простых функций. Требует regex (буст или c++0x)
Yandex
Объявления
23.05.2011, 12:45     Очередь команд
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru