![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]()
у меня вопрос, как в калькуляторе(не консольный) можно вычислять выражения на "лету", например (1+2)*10-5+2, т.е жмешь 1 потом + ...2...*...10...-...5...2...=
а не так: 1...+...2...=...*...10...=...-...5...=...+...2...= как такое реализовать. Была идея создать переменные(флажки) и устанавливать и снимать их когда надо, мб есть другой способ? 5+3+2=10 этот алгоритм будет вычислять: 5+3=8 8+2=10 Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
Почитайте Страуструпа, там в главе 6 (по крайней мере, в Специальном издании) есть подробное описание калькулятора со скобками.
Там, конечно, консоль, но основное отличие будет только в формировании строки - там она просто сразу вводится с клавиатуры (или передается как параметр программе), а здесь вы используете кнопки калькулятора в качестве клавиш пишущей машинки, по нажатию "=" считаете, что ввод закончен. А потом обрабатываете по алгоритму калькулятора.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#3 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]()
значит я несовсем корректно задал вопрос), дело в том что когда например считаешь 1+2+3 на нормальном кальуляторе, жмешь 1 потом + потом 2, затем после нажатия + в edit выводится результат 1+2, вот как так сделать. В событии нажатия кнопки + надо дописать какое-то условие чтоб вычислялся результат, вот такое я что-то не могу придумать...
|
![]() |
![]() |
![]() |
#5 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]()
о_О а она тут каким боком? Хотите сказать калькулятор винды сделан с польской записью ? Возможно вы не поняли что я хочу. Покажу подробно на примере...
вычислить выражение (5+2)*10-3 действие(Д), вывод в Edit(E) Код:
Последний раз редактировалось NiCola999; 13.03.2010 в 22:54. |
![]() |
![]() |
![]() |
#6 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
![]()
Не какой польской записи, а тем более Дейкстры не надо. Храни предыдущее полученное значение и при нажатии на +,-,*,/,= считай предыдущее + / - / * / div предущее. Посмотри исходники любого калькулятора.
Моя реализация на JavaScript
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Последний раз редактировалось Ozerich; 13.03.2010 в 22:14. |
![]() |
![]() |
![]() |
#7 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]()
только он у вас не работает(кнопка '=' ниче не делает)
|
![]() |
![]() |
![]() |
#8 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
![]()
Виноват. Держи рабочий
Я не заметил что у тебя пример со скобками. Если есть скобки в примере, то вычислять надо подругому. Как вариант это упомянутая выше польская нотация или рекурсивный пересчет. Вот рекурсивное решение Код:
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Последний раз редактировалось Stilet; 15.03.2010 в 09:30. |
![]() |
![]() |
![]() |
#9 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
![]()
ага, спасибо. Но я уже начал делать стековый калькулятор
|
![]() |
![]() |
![]() |
#10 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
![]()
Рекурсия это ведь тоже стек
![]()
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
OpenOffice Calc, инсталл | Xeon332 | Софт | 11 | 09.02.2010 09:08 |
висне сет при запуску Win XP после установки Win 7 | VVkSoft | Windows | 3 | 15.09.2009 10:36 |
траблы с calc express | xaero93 | Помощь студентам | 0 | 23.04.2009 06:10 |
Win или не Win, вот в чем вопрос. | Sibedir | Свободное общение | 101 | 09.09.2008 20:03 |
пути в реестре, где находятся программы автозагрузки для win'95 win'98 win' me win 2000 | Prisian | Win Api | 1 | 11.09.2007 20:07 |