Программируемый калькулятор

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Программируемый калькулятор

Сообщение Денис » 29.07.2009 (Ср) 8:40

На волне возросшего интереса к эвалюаторам я решил набросать одному из форумчан примерчик использования скрипт-контрола. Из этого примерчика вырос полноценный проект:

Программируемый калькулятор

Итак, с чего все началось? Я бросил на форму два текстбокса в одном вводится выражение, во втором показывается результат в виде: "Выражение=Результат".
Затем, этого мне показалось мало и я добавил еще текстбокс, в котором выводится результат. Смысл этого добавления вот в чем: Если мне нужно производить односложные вычисления и к результату добавлять еще что-то (простой бухгалтерский метод), то я работаю в поле результата, если мне надо рассчитывать некую формулу, постоянно меняя параметры в выражении (метод, как правило используемый студентами), то я работаю в поле выражения. В любом случае, в третьем поле красиво вырастает история вычислений, которую можно впоследствии куда-либо скопировать.
И вот тут появляется еще одно поле: Функции и определения. По сути, это поле является телом полнофункционального VB- или J-скрипта, и из простенького калькулятора проект превращается уже в опасную игрушку (хотя, исходники - вот они, вы можете настроить скрипт-контрол в ограниченный режим, если боитесь).
Суть поля функций вполне очевидно. Пишем в нем, например,
Код: Выделить всё
X=12

function y(x)
y=x^2
end function

А в строке формул пишем y(x) или даже черт с ним, с иксом, пишем y(32)-y(23), в истории видим:
y(32)-y(23)=495
y(x)=144

По умолчанию синтаксис VBS, кому не нра, есть переключатель на JS. В довершение проекта я добавил строку состояния и заменил командные строки с текстбоксов на комбобоксы, добавив в них истории введенных данных. Очень удобно.
Еще один ньюанс продукта — отсутствие кнопок. Я отказался от распространенной идеи о том, что софтовый калькулятор должен непременно обладать нарисованными кнопками под мышку. Максимум, что можно добавить это плавающую панельку с шаблонами функций и процедур.

В общем, вот он перед вами, сабж. Качайте, тестируйте.
У вас нет доступа для просмотра вложений в этом сообщении.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Программируемый калькулятор

Сообщение Хакер » 29.07.2009 (Ср) 15:01

Если для вычислений используется ScriptControl, то это совсем не интересно.

И да, я хочу RPN. Скрипт-контрол её не даст.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Программируемый калькулятор

Сообщение jangle » 29.07.2009 (Ср) 15:50

Хакер писал(а):И да, я хочу RPN. Скрипт-контрол её не даст.


RPN самому реализовать как два пальца. Только оно никому не надо, все равно мозги сломаешь на большом скрипте.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Программируемый калькулятор

Сообщение Хакер » 29.07.2009 (Ср) 15:59

jangle, что за глупая привычка, на мою претензию об отсутствии в каком-то продукте какой-то фиче, отвечать мне, что эту фичу можно самому реализовать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Программируемый калькулятор

Сообщение Денис » 30.07.2009 (Чт) 8:27

Хакер писал(а):Если для вычислений используется ScriptControl, то это совсем не интересно.

Я собирался посмотреть эвалюаторы, представленные в кирпичах, особенно понравился эвалюатор с разбором в дерево, Тёмыча; но не знаю, судя по всему, определения переменных и функций пришлось бы реализовывать самостоятельно. А тут - готовый модуль. Инструмент готов и я им пользуюсь. Стоит ли изобретать велосипед?
Хакер писал(а):И да, я хочу RPN. Скрипт-контрол её не даст.

Там код парсера простейший (если я правильно понял код на питоне) так что, почему бы и нет, можно и добавить. А вообще, нотация не очень удобна человеку, ИМХО.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Программируемый калькулятор

Сообщение iGrok » 30.07.2009 (Чт) 9:38

Парсер/вычислитель ОПЗ у меня где-то лежал. Правда, десятилетней давности. Возможно, с соответствующими детскими ошибками. Возможно, не все операции реализованы.
Могу дать. )
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Программируемый калькулятор

Сообщение Денис » 30.07.2009 (Чт) 9:48

Спасибо.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Программируемый калькулятор

Сообщение jangle » 30.07.2009 (Чт) 13:04

Хакер писал(а):jangle, что за глупая привычка, на мою претензию об отсутствии в каком-то продукте какой-то фиче, отвечать мне, что эту фичу можно самому реализовать?


Притензия неправильная, автор все равно не сможет эту фичу реализовать самостоятельно. Поэтому, если надо, остается делать ее самому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Программируемый калькулятор

Сообщение iGrok » 30.07.2009 (Чт) 13:31

Денис писал(а):Спасибо.

В смысле, "Спасибо, не надо." или "Спасибо, давай."?
Или "Спасибо, что комментируете."? )
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Программируемый калькулятор

Сообщение Денис » 30.07.2009 (Чт) 14:53

jangle
автор все равно не сможет эту фичу реализовать самостоятельно

Бесплатно - не смогу реализовать. Улавливаешь?

iGrok
"Спасибо, что комментируете."
Если твой эвалюатор годный - выкладывай в кирпичи.
Когда появится необходимость и я и тысячи других юзеров скачают и заюзают.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList