|
Основной форум Сюда все проблемы связанные с программированием. |
22.07.2008, 15:24
|
#1
|
Оператор ЭВМ
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение (для 2 участников)
|
Калькулятор
Кароч дело обстоит так
Есть переменная которой присвоена команда создание edita над нип надпись введите число
Вопросы
1.Как сделать простейшее сложение (но чтобы два числа вводил пользователь )
|
(Offline)
|
|
22.07.2008, 23:11
|
#2
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Калькулятор
Скачай русскую версию от odd - погугли
А там с русской справкой разберешься, я думаю...
|
(Offline)
|
|
23.07.2008, 08:07
|
#3
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Калькулятор
Тут надо парсить строку. Сначала пробегаешься по всей строке и считаешь сколько там будет */+-, а потом режешь строку на числа и в зависимости от операций делаешь те или иные операции. Почитай хорошенько обработку текстовых строк. Особенно резку.
|
(Offline)
|
|
23.07.2008, 08:38
|
#4
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Калькулятор
|
(Offline)
|
|
23.07.2008, 11:44
|
#5
|
|
Ответ: Калькулятор
anton_obuhov
сложение - ищешь где в строке +, режешь на две части
две части переводишь в цифры и складываешь
если нужен разбор всех операций то лутче всего воспользоватся обратной польской нотацией
http://algolist.manual.ru/syntax/revpn.php
|
|
|
24.07.2008, 08:32
|
#6
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Калькулятор
Я бы делал так. Допустим, юзер ввел строку 2+2*2 режешь её и помещаеш в массив (лучше использовать вектор, реализованный в Lib_vdata). У тебя получается примерно такой массив:
2
+
2
*
2
Теперь пробегаешь по массиву и заменяешь все умножения на готовый результат, остальные элементы массива удаляешь. Т.е. после пробежки у тебя должно получиться примерно следующее:
2
+
4
Потом пробегаешься по массиву и ищешь и вычисляешь все деления, потом сложения и вычитания. В итоге у тебя и получится 6.
Аналогично вычисляются скобки, другие алгбраические функции и т.п.
|
(Offline)
|
|
24.07.2008, 11:09
|
#7
|
|
Ответ: Калькулятор
odd
и как оно будет считать 2*3*(4+5*6*(7+8*(9+10*(11+12)))) + 12*(13+14) ?
у тебя не получится резать по символам, потому что ты получишь под строку
а проблема в том что не известно где подстрока заканчивается пока ты её не проанализируешь
|
|
|
24.07.2008, 23:52
|
#8
|
Оператор ЭВМ
Регистрация: 11.11.2007
Сообщений: 26
Написано 6 полезных сообщений (для 10 пользователей)
|
Ответ: Калькулятор
|
(Offline)
|
|
25.07.2008, 19:03
|
#9
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Калькулятор
Сообщение от vitalik1
|
Выложи пожалуйста, мне надо.
|
(Offline)
|
|
25.07.2008, 19:25
|
#10
|
Оператор ЭВМ
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение (для 2 участников)
|
Re: Калькулятор
Извините за глупый вопрос но так я новичок можно как бы по русски говорить а не прогерским жаргоном. Что значит парсить строку, я порылся в русской справке там про то чтобы парсить строку или резать ничего не сказано может разъесните пожалуйста
|
(Offline)
|
|
25.07.2008, 19:31
|
#11
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Калькулятор
Парсить строку - это "разрезать" ее по какому-то закону. Ы
|
(Offline)
|
|
25.07.2008, 21:58
|
#12
|
Оператор ЭВМ
Регистрация: 11.11.2007
Сообщений: 26
Написано 6 полезных сообщений (для 10 пользователей)
|
Ответ: Калькулятор
Romanzes
Вот исходник
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.07.2008, 22:55
|
#13
|
Оператор ЭВМ
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение (для 2 участников)
|
Re: Калькулятор
а не подскажете какой командой резать надо то а то в спавке нет
|
(Offline)
|
|
26.07.2008, 00:00
|
#14
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Калькулятор
Вот, к примеру у тебя в строке 2 числа, разделенные знаком "+". Например:
str:='12345+6789';
Тогда ты находишь первое и второе числа так:
num1:=StringToInteger(Copy(str,0,Pos(str,'+')));
num2:=StringToInteger(Copy(str,Pos(str,'+')+1,Leng th(str)-1));
Про функции Copy, Pos и Length сам почитай.
|
(Offline)
|
|
26.07.2008, 06:55
|
#15
|
Оператор ЭВМ
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение (для 2 участников)
|
Re: Калькулятор
Вопрос такого рода вот код проги
program cal; var Summa, OP1,OP2:integer; 1POLE,2POLE:command; begin Showform; 1POLe:=formaddtextfield('ВВедите первое слагаемое',20,TF_Numeric); 2POLE:=formaddtextfield('ВВедите второе слагаемое',20,TF_Numeric); OP1:=stringtointeger(formgettext(1POLE)); OP2:=stringtointeer(formgetText(2POLE)); Summa:=OP1+OP2 end.
ИЗвините если код неправелен но наишите как теперь вывести число Summa? Спасибо
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:23.
|