Calculator Example


The HP-35 was HP's first pocket calculator. It was introduced at a time when most calculators had only the four basic functions. The HP-35 was the first pocket calculator with transcendental functions, and the first with RPN.

The following specifications have been derived from the instructions printed on the back of the calculator. (Image from http://www.hpmuseum.org/hp35.htm.)

Low battery lights all decimal points.

eg.Calculator
voltswatts()points()
3.75.500false
3.60.500false
3.45.500false
3.30.500true

Improper operations flash display. Press clx.

eg.Calculator
keyx()flash()
100100false
enter100false
00false
/0true
clx0false

clx clears the display.

eg.Calculator
keyx()y()z()t()
100100   
enter100100  
enter100100100 
enter100100100100
clx0100100100

clr clears all registers.

eg.Calculator
keyx()y()z()t()
100100   
enter100100  
enter100100100 
enter100100100100
clr0000

chs changes sign of display. May be used as the first entry when entering negative numbers.

eg.Calculator
keyx()y()
1001000
chs-1000
chs1000
enter100100
chs-0100
100-100100

eex causes next entries to become the exponent of x. For negative expoinents chs must precede digits.

The operational stack consistes of four registers (x, y, z and t). A fifth register (s) is used for constant storage.

The stack is automatically raised by an entry into x or by rcl unless the entry or rcl immediately follows clx, sto or enter.

Follwing any trig function z is duplicated into register t.

All angles are in degrees.

Example (2+3) * (4/5) / sin(30) * (4^-1.5) = 1.0000

eg.Calculator
keyx()y()
22 
enter22
332
+5 
445
*20 
5520
/4 
30304
sin.54
/6 
-1.5-1.58
enter-1.5-1.5
44-1.5
x^y.1258
*1.0000 


You can run this document as it stands right now against a calculator implemented at c2.com. You will find that that the tests, the fixture and the calculator code are all not yet complete. Failing tests turn a cell red. There are two values in the cell. The top one is the expected result. The bottom is the actual result.

 

Last edited September 12, 2002
Return to WelcomeVisitors