**Fun with the Sharp EL-5500 III**

See my review for
the EL-5500 III here: http://edspi31415.blogspot.com/2017/01/retro-review-sharp-scientific-computer.html

Even though the
EL-5500 III has one programming space, we can fit many programs in it. One of the great features is that how
programs take relatively little space.
Obviously you can change the line numbers, the sequence of lines are
most important.

**Euclid Algorithm – RUN 10**

10 PAUSE “GCD:
A>B”

18 INPUT “A: “; A, “B:
“; B

20 C = A – INT(A/B)*B

30 IF C = 0 THEN 40

32 A = B

34 B = C

36 GOTO 20

40 PRINT “GCD = “; B

46 END

My first program
on the EL-5500 III. We can probably make
the coding more efficient. PRINT with a
proceeding WAIT pauses execution until [ ENTER ] is pressed.

The command END
ends the program execution and allows the space to have more than one routines.

Examples:

A: 100, B:
20. Result: GCD = 20

A: 63, B:
60. Result: GCD = 3

**Binomial Expansion – RUN 50**

50 PAUSE “(Ax + B)^n”

55 INPUT “A: “;A, “B:
“;B, “N: “,N

60 FOR I=0 TO N

65 C = FACT(N) /
(FACT(I) * FACT(N-I))

70 T = C * A^(N-I) *
B^I

75 PRINT T; “*x^”;
N-I

80 NEXT I

85 END

The command
PAUSE shows the text for about 0.85 seconds.

This program
displays each coefficient one at time.

Example: A = 3, B = -2, N = 3. Expand (3 – 2x)^3.

Result: 27, -54, 36, -8 (27x^3 – 54x^2 + 36x – 8)

**Days Between Dates – RUN 100**

100 PAUSE “Days
between Dates”

112 INPUT “M1:”; M1,
“D1:”; D1, “Y1:”; Y1

113 INPUT “M2:”; M2,
“D2:”; D2, “Y2:”; Y2

115 M = M1: D = D1:
Y = Y1

117 GOSUB 140

119 F1 = F

121 M = M2: D = D2:
Y = Y2

123 GOSUB 140

125 F2 = F

127 N = F2 – F1

129 PRINT “# DAYS: “;
N

131 END

140 IF M > 2 THEN
150

142 X = 0: Z = Y – 1

144 GOTO 160

150 X = INT(.4 * M +
2.3): Z = Y

160 F = 365 * Y +
31* (M – 1) + D + INT(Z/4) – X

165 RETURN

If I had it my
way, every calculator that isn’t a basic 4-function calculator will have a Days
Between Dates function.

Example: November 4, 1986 to January 12, 2017

M1: 11, D1: 4, Y1: 1986

M2: 1, D2: 12,
Y2: 2017

Result: 11,027

**Power of a Complex Number – RUN 200**

This calculates
(a + bi)^n

200 PAUSE “(A +
Bi)^n”

203 INPUT “A: “;A, “B:
“;B, “n: “;N

205 IF A<>0
THEN 210

207 A = A^N: GOTO
220

210 R = √(A^2 +
B^2)^N

212 T = ATN(B/A)*N

214 A = R * COS T

216 B = R * SIN T

220 PRINT A; “+”; B;
“i”

225 END

The command
<> means not equals (≠) and ATN is the arctangent function.

Examples:

(2 +
3i)^3: A = 2, Bi = 3. Result: -46 + 9i

(-5 + i)^2: A = -5, Bi = 1. Result: 24 – 10i

**Error Function Approximation – RUN 250**

250 PAUSE “APPROX
ERF(X)”

252 CLEAR

254 DIM A(3)

256 E = 0

260 INPUT “X > 0
: “; X

262 T = RCP(1 +
.47047 * X)

270 FOR I = 1 TO 3

272 READ A(I)

274 E = E + A(I) *
T^I

276 NEXT I

280 DATA .3480242,
-.0958798, .7478556

290 E = 1 – E *
EXP(-(X^2))

292 PRINT “ERF : “,
F

294 CLEAR

296 END

Use the command
CLEAR to clear all the variables. At
this point, I will use this command both at the beginning and end of
calculations. The command RCP is the
reciprocal. Finally, EXP is from e^x
function,

*not the [EXP] key*.
Example:

x = 0.53, erf ≈
0.546455764

x = 0.88, erf ≈
7.86708E-01 = 0.786708

Keep in mind
this approximation is accurate 2.5 parts in 10^-5.

Source: Smith, Jon M.

__Scientific Analysis on the Pocket Calculator__John Wiley & Sons: New York. 1975. ISBN 0-471-79997-1**Simpson’s Rule – RUN 300**

Calculates the
numeric integral ∫ f(x) dx from x = L to x = U.

You can edit
the function at line 342. In BASIC-PRO
mode, call up line 342 by LIST 342. Edit
as desired.

300 PAUSE “Simpsons
Rule”

302 CLEAR

304 INPUT “LOWER: “;
L, “UPPER: “; U, “PARTS (even): “; N

306 RADIAN

308 X = L: GOSUB
340: T = F

310 X = U: GOSUB
340: T = T + F

314 H = (U – L)/N

320 FOR I = 1 TO N-1

322 X = L + I * H:
GOSUB 340

324 R = I/2 –
INT(I/2)

326 IF R = 0 THEN
LET T = T + 2*F

328 IF R <> 0
THEN LET T = T + 4*F

330 NEXT I

332 T = T * H/3

334 PRINT “Integral:
“, T

336 CLEAR

338 END

340 REM f(x)

342 F =

*[insert f(X) here]*
344 RETURN

Note: I finally learn why LET is included in BASIC. In an IF-THEN statement, if you want to
assign a value or calculation to a variable, you will need a LET command.

I use a REM
(remark) command on line 340. REM is for
comments and nothing said after REM is executed.

Examples:

342 F = X^2 – 1

L = -2, U = 2,
N = 14. Result: 1.333333334 (Actual: 4/3 ≈ 1.333333333)

342 F = √(X –
1)

L = 2, U = 3, N
= 14. Result: 1.218951372 (Actual: ≈ 1.2158951416)

**Dancing Star Demo – RUN 400**

400 PAUSE “Dancing
Star Demo”

405 CLEAR

410 S$ = “ “
(9 spaces)

415 FOR I = 1 TO 48

420 N = RND 7 + 1

425 T$ = MID$(S$, 1,
N-1) + “*” + MID$(S$, N+1, 9-(N+1))

430 WAIT 15: PRINT
T$

440 NEXT I

445 BEEP 3: CLEAR:
END

This is just
show a dancing asterisk (*) on the screen.

WAIT 15: PRINT
T$: This causes the string T$ after a
quarter of a second. WAIT operates in
1/60 seconds.

RND n: This is the random command. If n = 1, the result is between 0 and 1.

BEEP n: This makes the EL-5500 III beep n times.

Eddie

This blog is
property of Edward Shore, 2017.

Just tryed your " dancing stars demo " It worked .. I haven't programed on that thing in 20 years !! thanks , greg .

ReplyDeleteJust tryed your " dancing stars demo " It worked .. I haven't programed on that thing in 20 years !! thanks , greg .

ReplyDeletetried your " dancing star demo " it worked !! I haven't wrote a program on that machine in 20 years !!!!!!!!! thanks , greg

ReplyDelete