![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 11
|
![]()
Написал калькулятор без чьей-либо помощи, без помощи инета, всё сам основываясь только на школьных знаниях. В целом не сложно, сложно правда защиту от дураков ставить (чтобы две запятые нельзя было ставить и т.д.). Но до сих пор не могу исправить одну ошибку. Если я делаю сложное выражение (состоящее более чем из одной операции, например 1+1+1) то оно считает только последнюю операцию (т.е. ответ будет 2). Почему так получается я знаю (просто все данные у меня считываются с поля ЭДИТ), но я не знаю как это исправить. Уже много вариантов перебрал. Помогите пожалуйста, очень хочется сделать полноценный кальк. Если найдёте ещё какой-нибудь баг - скажите, я его исправлю. Да и вообще скажите ваше мнение, по поводу моей работы. В следующем посте отправлю полностью код программы, а тут ссылку на картинку вида калькулятора, чтобы вы знали сколько там у меня кнопок, и где они расположены и т.д.
http://www.photoshare.ru/photo7013895.html Заранее благодарен. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 11
|
![]() Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 28.03.2011 в 11:20. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 11
|
![]() Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 28.03.2011 в 11:20. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а проект в архиве выложить не проще было?!
![]() 1) вместо: procedure TForm1.Button1Click(Sender: TObject); ... procedure TForm1.Button2Click(Sender: TObject); .. procedure TForm1.Button10Click(Sender: TObject); я бы рекомендовал сделать так: сначала в Дизайнере, в диспетчере объектов для каждой кнопки задать свойство TAG (для кнопки Button1 - Tag: 1, для второй - 2 и т.д. для Button10.Tag := 0; потом сделать ОДНУ процедуру и назначить её всем кнопкам: Код:
2) теперь по сути вопроса. если хотите, можете воcпользоваться моими исходниками парсера арифметических выражений. взять можно тут если же не хотите - тогда надо Вам самостоятельно писать такой парсер. Вводите допускаемые операции, допускаются ли скобки, будет ли соблюдаться правильный приоритет математических действий и пишите парсер. В принципе, это не очень сложно. Да и литературы/примеров полно... |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 28.03.2011
Сообщений: 11
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 11
|
![]()
Всё-таки ещё один вопросец у меня появился, думаю по этой теме. Хочу сделать кнопку DEL в калькуляторе. Команды либо не знаю либо не помню. Знаю что команда связана с обработкой текста, в моём случае с обработкой едит1.текст. Подскажите плз команду удаления последнего символа в строке СТРИНГ.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.01.2011
Сообщений: 25
|
![]()
Можно брать строку без послденего символа
copy(s,0,length(s)-1 ) |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 28.03.2011
Сообщений: 11
|
![]() |
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 22.01.2011
Сообщений: 25
|
![]()
s это строка с которой рабоатем, length функция которая возвращет длину строки, copy функция которая копирует подстроку начиная со второго аргумента в нашем случае с нуля, и копиремая подстрока содержит символы число которых равно третьему аругменту, в нашем случае на один символ меньше чем s
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
База данных(Pascal). Отлов багов. | inviter | Помощь студентам | 0 | 09.01.2011 17:15 |
Ограничение возможностей C++ для уменьшения багов | Kn793 | Общие вопросы C/C++ | 5 | 15.12.2010 15:11 |