|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.03.2010, 15:32 | #1 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
win calc
у меня вопрос, как в калькуляторе(не консольный) можно вычислять выражения на "лету", например (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 Код:
|
13.03.2010, 15:41 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Почитайте Страуструпа, там в главе 6 (по крайней мере, в Специальном издании) есть подробное описание калькулятора со скобками.
Там, конечно, консоль, но основное отличие будет только в формировании строки - там она просто сразу вводится с клавиатуры (или передается как параметр программе), а здесь вы используете кнопки калькулятора в качестве клавиш пишущей машинки, по нажатию "=" считаете, что ввод закончен. А потом обрабатываете по алгоритму калькулятора.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
13.03.2010, 15:47 | #3 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
значит я несовсем корректно задал вопрос), дело в том что когда например считаешь 1+2+3 на нормальном кальуляторе, жмешь 1 потом + потом 2, затем после нажатия + в edit выводится результат 1+2, вот как так сделать. В событии нажатия кнопки + надо дописать какое-то условие чтоб вычислялся результат, вот такое я что-то не могу придумать...
|
13.03.2010, 20:23 | #5 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
о_О а она тут каким боком? Хотите сказать калькулятор винды сделан с польской записью ? Возможно вы не поняли что я хочу. Покажу подробно на примере...
вычислить выражение (5+2)*10-3 действие(Д), вывод в Edit(E) Код:
Последний раз редактировалось NiCola999; 13.03.2010 в 22:54. |
13.03.2010, 22:12 | #6 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
Не какой польской записи, а тем более Дейкстры не надо. Храни предыдущее полученное значение и при нажатии на +,-,*,/,= считай предыдущее + / - / * / div предущее. Посмотри исходники любого калькулятора.
Моя реализация на JavaScript
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Последний раз редактировалось Ozerich; 13.03.2010 в 22:14. |
13.03.2010, 22:55 | #7 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
только он у вас не работает(кнопка '=' ниче не делает)
|
13.03.2010, 23:03 | #8 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
Виноват. Держи рабочий
Я не заметил что у тебя пример со скобками. Если есть скобки в примере, то вычислять надо подругому. Как вариант это упомянутая выше польская нотация или рекурсивный пересчет. Вот рекурсивное решение Код:
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Последний раз редактировалось Stilet; 15.03.2010 в 09:30. |
14.03.2010, 00:09 | #9 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
ага, спасибо. Но я уже начал делать стековый калькулятор
|
14.03.2010, 00:23 | #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 |