(08-16-2020 10:39 PM)Dave Britten Wrote: (08-16-2020 06:59 PM)David22 Wrote: Casio fx-5800P is the only other non-graphic programmable cal available today, but it seems graphic without being. I see no value on it: its programming model is much better than fx-50F/fx-50FH but it isn't solar and for "no solar" calcs there are much older and much better programmable calculators.
The one thing I really like about the fx-5800P is a really small detail that makes a big difference: using ?X without the STO arrow in between to prompt for a value and present the current value as default. It's similar to how INPUT works on the 32S and 42S. It's great for running a program multiple times when you only want to change some of its inputs.
Back on the subject of the fx-50FH and fx-3600P, I worked out a reasonably efficient way to replicate the Int function to get the integer part of a number. You can omit the 0>X term if you know you won't be dealing with negative values.
fx-50FH:
Fix 0:Rnd(X+.5(0>X)-.5(X>0))
fx-3600P:
Fix 0:X+.5(0>X)-.5(X>0):Rnd
Hello, so here is a "HMS+" program for the Casio fx-3650P II:
Code:
0->A:0->X
Lbl 1
?->X:Fix 0
((X>=0)-(X<=0))(250Abs(X)-Rnd(100Abs(X)-.5)-60Rnd(Abs(X)-.5))/90+A->A
((A>=0)-(A<=0))(90Abs(A)+Rnd(60Abs(A)-.5)+100Rnd(Abs(A)-.5))/250->X
Norm 1:Goto 1
Notes:
- Rnd(X-.5) stands for INT(x) where x>0, because INT(x) is missing
- ((X>=0)-(X<=0)) stands for SGN(x), because SGN(x) is missing
- (250X-INT(100X)-60INT(X))/90 stands for HMS->DEC(x) where x>0, because HMS->DEC(x) cannot be used in programs
- (90X+INT(60X)+100INT(X))/250 stands for DEC->HMS(x) where x>0, because DEC->HMS(x) cannot be used in programs
- Input x (negative or positive) in HH.MMSS..... format
- Program displays accumulated result in HH.MMSS..... format, waiting for next x