# Students Calculator for JAVA phones

### by :VoxeL: aka absorbb

I'd like to present to you JAVA calculator for students with input of the string from keyboard.
The problem with paucity of buttons was sold by separation of functions onto 4 levels:
1st digitss and .
2nd sin, cos, tan, *, /, +, (), square, square root,
3d asin, acos, atan, ln, log, exp(x), (-), 10x, π, xy, n-th root,
4th sh, CH, th, ash, ach, ath, ANS (inserts the answer into the line), abs, the factorial, X.Y (variables given by user).
Levels are switched by #.
It is checked, that the speed of entry on it is mostly the same as in usual calculators. As a maximum it will be necessary fpr an operator to press button 4 times to press button, and since the majority of pressures is fallen to the numbers, then on the average it will come out near 1 pressure :)
Calculator provides approximately 16 decimal digits accuracy. For calculations with the numbers with floating point it uses class Real.java from Roar Lauritzsen.
Calculator is written under MIDP1.0 and CLDC1.0

1. Calculator has history of entries from 9 lines.
2. There is a possibility to assign 2 user variables and to use them in the calculations.
4. The possibility to calculate in HEX, OCT, BIN systems! Some additional functions is available in these modes, such as div, or, and, mod, xor, not, >>, << (since 1.5.0)
5. Tuning format of output answer (FIX, SCI, ENG) and quantity of digits.
6. There is possibility of reassignment keys DIAL, FIRE, NODIAL (only for some telephones) through Settings menu.
7. There is possibility to copy answer (ANS to text) into the buffer on telephones, supporting copying text.
8. There is possibility to convert answer to simple fraction (ANS to a/b). Algorithm is approximate. If it fail to find accurate fraction, the symbol "E" appears before result.
9. The history of entries and all settings saves on exit.
10. Possibility of entering basic physics constants from Constants menu.

Joystick up/down navigation on the history of entries. Down on the first line creates a new one and deletes upper line. = dont create a new entry in history. Pressing on joystick turns the keyboard into insert mode.

Calculator was tested on:
Motorola E398, V620, C380, C650
SonyEricsson
K700, T630, T610
Siemens C65 CX65 (Siemens version) ,  SX1
Nokia 6610i, N-Gage
Samsung E800
Theoretically it must work on all telephones supporting JAVA.

Thanks:
JenFA
for the source of File Manager, which greatly helped me, for the valuable advice and the moral support.
Busheva
Maria aka RNqAM for the inspiration and for the moral support.
Strizhenko
Pavel aka Proton for the testing and the project promotion.

You may leave your comments in forum or mail it to v0xel@mail.ru

Version history:

Changes in version 1.5.0 PR Release Date: March 26 , 2006:

1. New version of class Real.java without calculation errors on some Siemens and Nokia phones now used. Separated version for Siemens no needed now.
2. Calculation of constants was fixed.

Changes in version 1.5.0beta4 Release Date: January 7 , 2006:

1. Now you can choose length of variables for HEX, OCT, BIN modes - 1, 2 or 4 bytes (Number Format).
2. Drawing keyboard on some phones was fixed.
3.
Bugfixes.

Changes in version 1.5.0beta3 Release Date: December 25 , 2005:

1. New algorithm for string parsing and calculation.
2. Priorities of bitwise operations was fixed.
3.
Converting answer to simple fraction was optimized. Now it is much faster and more precise.
4. New algorithm for saving data and drawing forms.
5. Code optimizations and bugfixes.

Changes in version 1.5.0beta2 Release Date: October 25 , 2005:

1. Each system DEC HEX OCT BIN now has its own input history.
2.
Fixed some troubles with keyboard
3. Fixed calculation priorities for functions div, or, and, mod, xor, , >>, <<

Changes in version 1.5.0beta1 Release Date: October 24 , 2005:

1. The possibility to calculate in HEX, OCT, BIN systems was added! Some additional functions is available in these modes, such as div, or, and, mod, xor, not, >>, <<
2.
Function "ANS to text" was replaced by "Convert ANS" This function present answer in all systems (DEC,HEX,OCT,BIN) at once.
3.
New function "Past ANS" was added for direct pasting answer to string, however answer from another numeral system automatically converts to current system.
4. New formats for angle measures was added - Grads and Length of arc.
5. Great optimisation of code and graphics was made.
6. Some troubles was fixed in algorythms of string parser.

Changes in version 1.13. Release Date: September 20, 2005

1. Repeat of action when key is held down.

Changes in version 1.12. Release Date: April 29, 2005

1. The speed of algorithm of converting answer to simple fraction and it's accuracy was enhanced.
2. If there is "E" symbol before fraction, it means that the result of algorithm is approximate.

Changes in version 1.1. Release Date: April 27, 2005