Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 22.07.2008, 15:24   #1
anton_obuhov
Оператор ЭВМ
 
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение
(для 2 участников)
Печаль Калькулятор

Кароч дело обстоит так
Есть переменная которой присвоена команда создание edita над нип надпись введите число

Вопросы
1.Как сделать простейшее сложение (но чтобы два числа вводил пользователь )
(Offline)
 
Ответить с цитированием
Старый 22.07.2008, 23:11   #2
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Калькулятор

Скачай русскую версию от odd - погугли
А там с русской справкой разберешься, я думаю...
(Offline)
 
Ответить с цитированием
Старый 23.07.2008, 08:07   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Калькулятор

Тут надо парсить строку. Сначала пробегаешься по всей строке и считаешь сколько там будет */+-, а потом режешь строку на числа и в зависимости от операций делаешь те или иные операции. Почитай хорошенько обработку текстовых строк. Особенно резку.
(Offline)
 
Ответить с цитированием
Старый 23.07.2008, 08:38   #4
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Калькулятор

http://algolist.manual.ru/syntax/parsear.php
Вот еще по теме
(Offline)
 
Ответить с цитированием
Старый 23.07.2008, 11:44   #5
jimon
 
Сообщений: n/a
Ответ: Калькулятор

anton_obuhov
сложение - ищешь где в строке +, режешь на две части
две части переводишь в цифры и складываешь

если нужен разбор всех операций то лутче всего воспользоватся обратной польской нотацией
http://algolist.manual.ru/syntax/revpn.php
 
Ответить с цитированием
Старый 24.07.2008, 08:32   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 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
jimon
 
Сообщений: n/a
Ответ: Калькулятор

odd
и как оно будет считать 2*3*(4+5*6*(7+8*(9+10*(11+12)))) + 12*(13+14) ?
у тебя не получится резать по символам, потому что ты получишь под строку
а проблема в том что не известно где подстрока заканчивается пока ты её не проанализируешь
 
Ответить с цитированием
Старый 24.07.2008, 23:52   #8
vitalik1
Оператор ЭВМ
 
Регистрация: 11.11.2007
Сообщений: 26
Написано 6 полезных сообщений
(для 10 пользователей)
Ответ: Калькулятор

А я сделал методом рекурсивного спуска.
Вот ссылки:
http://ru.wikipedia.org/wiki/Метод_рекурсивного_спуска
http://ru.wikipedia.org/wiki/Контекс...ная_грамматика

Могу выложить исходники если кому надо.
(Offline)
 
Ответить с цитированием
Старый 25.07.2008, 19:03   #9
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 638 пользователей)
Ответ: Калькулятор

Сообщение от vitalik1 Посмотреть сообщение
А я сделал методом рекурсивного спуска.
Вот ссылки:
http://ru.wikipedia.org/wiki/Метод_рекурсивного_спуска
http://ru.wikipedia.org/wiki/Контекс...ная_грамматика

Могу выложить исходники если кому надо.
Выложи пожалуйста, мне надо.
(Offline)
 
Ответить с цитированием
Старый 25.07.2008, 19:25   #10
anton_obuhov
Оператор ЭВМ
 
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение
(для 2 участников)
Лампочка Re: Калькулятор

Извините за глупый вопрос но так я новичок можно как бы по русски говорить а не прогерским жаргоном. Что значит парсить строку, я порылся в русской справке там про то чтобы парсить строку или резать ничего не сказано может разъесните пожалуйста
(Offline)
 
Ответить с цитированием
Старый 25.07.2008, 19:31   #11
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Калькулятор

Парсить строку - это "разрезать" ее по какому-то закону. Ы
(Offline)
 
Ответить с цитированием
Старый 25.07.2008, 21:58   #12
vitalik1
Оператор ЭВМ
 
Регистрация: 11.11.2007
Сообщений: 26
Написано 6 полезных сообщений
(для 10 пользователей)
Ответ: Калькулятор

Romanzes
Вот исходник
Вложения
Тип файла: zip calc.zip (13.3 Кб, 396 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Romanzes (25.07.2008)
Старый 25.07.2008, 22:55   #13
anton_obuhov
Оператор ЭВМ
 
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение
(для 2 участников)
Re: Калькулятор

а не подскажете какой командой резать надо то а то в спавке нет
(Offline)
 
Ответить с цитированием
Старый 26.07.2008, 00:00   #14
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 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
anton_obuhov
Оператор ЭВМ
 
Регистрация: 25.10.2007
Сообщений: 30
Написано одно полезное сообщение
(для 2 участников)
Сообщение Re: Калькулятор

Вопрос такого рода вот код проги
program cal;
var
SummaOP1,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)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кажется проблема с указателями:( aureli0 C++ 2 27.08.2009 22:18
Гуру MP! Кто хочет заработать! Вадим Болтовня 10 24.12.2008 18:14
Все статьи, уроки,дополнения, ошибки компl anton_obuhov Основной форум 3 14.09.2008 13:11
Работа нескольких программ в одной anton_obuhov Основной форум 4 10.09.2008 11:15
Опять удалили мою тему. Crystal Наш форум 3 09.01.2008 11:36


Часовой пояс GMT +4, время: 13:33.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com