![]() |
Калькулятор
Кароч дело обстоит так
Есть переменная которой присвоена команда создание edita над нип надпись введите число Вопросы 1.Как сделать простейшее сложение (но чтобы два числа вводил пользователь ) |
Ответ: Калькулятор
Скачай русскую версию от odd - погугли :)
А там с русской справкой разберешься, я думаю... |
Ответ: Калькулятор
Тут надо парсить строку. Сначала пробегаешься по всей строке и считаешь сколько там будет */+-, а потом режешь строку на числа и в зависимости от операций делаешь те или иные операции. Почитай хорошенько обработку текстовых строк. Особенно резку.
|
Ответ: Калькулятор
http://algolist.manual.ru/syntax/parsear.php
Вот еще по теме :-) |
Ответ: Калькулятор
anton_obuhov
сложение - ищешь где в строке +, режешь на две части две части переводишь в цифры и складываешь если нужен разбор всех операций то лутче всего воспользоватся обратной польской нотацией http://algolist.manual.ru/syntax/revpn.php |
Ответ: Калькулятор
Я бы делал так. Допустим, юзер ввел строку 2+2*2 режешь её и помещаеш в массив (лучше использовать вектор, реализованный в Lib_vdata). У тебя получается примерно такой массив:
2 + 2 * 2 Теперь пробегаешь по массиву и заменяешь все умножения на готовый результат, остальные элементы массива удаляешь. Т.е. после пробежки у тебя должно получиться примерно следующее: 2 + 4 Потом пробегаешься по массиву и ищешь и вычисляешь все деления, потом сложения и вычитания. В итоге у тебя и получится 6. Аналогично вычисляются скобки, другие алгбраические функции и т.п. |
Ответ: Калькулятор
odd
и как оно будет считать 2*3*(4+5*6*(7+8*(9+10*(11+12)))) + 12*(13+14) ? у тебя не получится резать по символам, потому что ты получишь под строку а проблема в том что не известно где подстрока заканчивается пока ты её не проанализируешь |
Ответ: Калькулятор
А я сделал методом рекурсивного спуска.
Вот ссылки: http://ru.wikipedia.org/wiki/Метод_рекурсивного_спуска http://ru.wikipedia.org/wiki/Контекс...ная_грамматика Могу выложить исходники если кому надо. |
Ответ: Калькулятор
Цитата:
|
Re: Калькулятор
Извините за глупый вопрос но так я новичок можно как бы по русски говорить а не прогерским жаргоном. Что значит парсить строку, я порылся в русской справке там про то чтобы парсить строку или резать ничего не сказано может разъесните пожалуйста
|
Ответ: Калькулятор
Парсить строку - это "разрезать" ее по какому-то закону. Ы :)
|
Ответ: Калькулятор
Вложений: 1
Romanzes
Вот исходник :) |
Re: Калькулятор
а не подскажете какой командой резать надо то а то в спавке нет:dontknow:
|
Ответ: Калькулятор
Вот, к примеру у тебя в строке 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 сам почитай. |
Re: Калькулятор
Вопрос такого рода вот код проги
PHP код:
|
Часовой пояс GMT +4, время: 14:08. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot