mjCalculator
Калькулятор для вычислений с плавающей точкой для мобильный телефонов. Основные особенности:
- Регулируемый размер мантиссы (и, соответсвенно, точности вычислений) - 12, 17, 22 и 25 десятичных цифр.
- Размер степени (экспоненты) - до 8 десятичных цифр
- Обратная польская нотация вычислений - не требуется знак =
- Стековый принцип хранения операндов - не требуются дополнительные операции для занесения
промежуточных результатов в ячейки памяти.
- Автоподстройка (размер цифр и т.д.) под все размеры экранов, поддержка цветных и черно-белых дисплеев
- Широкие возможности редактирования, отмена последнего действия, ввод числовых констант (число пи)
- Математические функции: сложение, вычитание, умножение, деление, извлечение целой или дробной части из числа,
вычисление квадрата, куба и квадратного корня, тригонометрических функций (синуса, косинуса, тангенса),
логарифмы (натуральный и десятичный), возведение в произвольную степень.
- Ускоренный доступ к меню, доступ к вызову любого пункта любого меню - максимум за 2..3 нажатия кнопок
-
Принципы работы калькулятора:
- Все функции, требующие одного операнда, выполняются над текущим операндом (находится в области редактирования).
Результат помещается на место текущего операнда.
- Все функции, требующие два операнда, выполняются над первым операндом в стеке и текущим операндом. Результат
помещается на место текущего операнда. Стек сдвигается вниз и первый операнд удаляется из стека.
Пример вычислений - допустим, надо вычислить (a - b) / (c - d * e).
- вводим число a, затем помещаем его в стек (нажимаем *, затем 0)
- вводим число b, затем выполняем вычитание (нажимаем #, затем 1)
- помещаем результат в стек (нажимаем *, затем 0)
- вводим число с, затем помещаем его в стек (нажимаем *, затем 0)
- вводим число d, затем помещаем его в стек (нажимаем *, затем 0)
- вводим число e, затем выполняем умножение (нажимаем #, затем 3)
- выполняем вычитание (нажимаем #, затем 2)
- выполняем деление (нажимаем #, затем 4)
Описание меню
- * edit ввод и редактирование операндов. Редактировать можно только текущий операнд.

- 1 mantissa установка курсора на поле мантиссы
- 2 sign (m) смена (инверсия) знака мантиссы
- 3 exponent установка курсора на поле ввода порядка (экспоненты)
- 4 sign (e) смена (инверсия) знака порядка (экспонента)
- 5 clear очистка мантиссы и экспоненты текущего операнда
- 6 undo восстановление предыдущего состояния калькулятора
- 7 del удаление последнего знака мантиссы или экспоненты
- 8 about информация об авторе и программе
- 0 stack добавление операнда из поля редактирования в стек
- * dot ввод точки
- # esc выход из меню в режим редактирования
- # function выбор действия над операндами.

- 1 b+a сложение первого операнда в стеке и текущего операнда
- 2 b-a вычитание текущего операнда из первого операнда в стеке
- 3 b*a умножение первого операнда в стеке на текущий операнд
- 4 b/a деление первого операнда в стеке на текущий операнд
- 5 1/a вычисление обраного значения от текущего операнда
- 6 integer вычисление целой части от текущего операнда (отбрасывается дробная часть)
- 7 fraction вычисление дробной части от текущего операнда (отбрасывается целая часть)
- 8 sin,cos.. переход в меню выбора тригонометрических функций (синус, косинус и т.д.)

- 1 sin вычисление синуса текущего операнда
- 2 cos вычисление косинуса текущего операнда
- 3 tan вычисление тангенса текущего операнда
- 4 degrees установка градуса в качестве единицы измерения угловых величин
- 5 radians установка радиана в качестве единицы измерения угловых величин
- 6 pi присвоенеи текущему операнду числа "пи"
- # esc выход из меню в режим редактирования
- 9 power переход в меню выбора степенных функций (квадрат, куб, квадратный корень и т.д.)

- 1 a*a вычисление квадрата текущего операнда
- 2 a*a*a вычисление куба текущего операнда
- 3 sqrt(a) вычисление квадратного корня текущего операнда
- 4 ln(a) вычисление натурального логарифма
- 5 log(a) вычисление десятичного логарифма
- 6 pow(a) возведение в произвольную степень
- # esc выход из меню в режим редактирования
- # esc выход из меню в режим редактирования
Единственное требование - телефон должен поддерживать Java MIDP 1.0, поддерживаются цветные и черно-белые дисплеи
Скачать мидлет можно здесь:
mjCalculator.jad, 0.3 kb
mjCalculator.jar, 19 kb
Также можно скачать исходные коды программы
Другие мои разработки для сотовых телефонов
(полный список программ)