HP Forums
(HP48) Beginner questions about RPL - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: (HP48) Beginner questions about RPL (/thread-22560.html)



(HP48) Beginner questions about RPL - Pälzer - 10-23-2024 05:16 PM

Hello
I have been using HP calculators (17b, 19b, 20s, 48sx, 48g) in the office for some time for general calculations. Especially the HP48 and I love the multi-line display and use the stack extensively.
I am mainly just a software user and know little to nothing about programming.
I would now like to write a few very small programs in RPL and have had a code created by Chatgpt regarding the Collatz function:
Code:
<<
->n 
{ } ->L

WHILE 
DUP 1 > 
REPEAT
DUP ->L
DUP 2 MOD 0 = 
IF
2 / 
ELSE
3 * 1 +
END
END
->L
>>
Unfortunately, entering the code fails at the "1" (line 6).
Does anyone have time and can help me?
I am not interested in optimal code, but in learning to understand the code as a beginner.
Thank you very much


RE: (HP48) Beginner questions about RPL - Steve Simpkin - 10-23-2024 05:28 PM

This appears to be a variation of the following PRL program created by Joe Horn.

\<< 0 SWAP @ Put an empty loop counter in level 2.
WHILE DUP 1 > @ Exit as soon as it gets to 1.
REPEAT
IF DUP 2 MOD @ is it odd?
THEN 3 * 1 + @ yes? then multiply by 3 and add 1;
ELSE 2 / @ no? then divide by 2.
END
SWAP 1 + SWAP @ Increment the loop counter.
END DROP @ Lose the "1" and stop.
\>>

See the following Hailstone Path download at hpcalc.org. Joe has a very nice write-up that discusses this subject.
https://www.hpcalc.org/details/6808


RE: (HP48) Beginner questions about RPL - Pälzer - 10-23-2024 05:43 PM

Thanks.
One more quick question:
do the "\" in \<< and \>> have a meaning ?

While searching here in the forum, I noticed that this is often used.

Question 2:
I would like to have the results in a list, as above

{ } ->L
...
...
->L

I'm curious if this will work, I'll try it out tomorrow evening.

edit: question 2 added


RE: (HP48) Beginner questions about RPL - Steve Simpkin - 10-23-2024 06:04 PM

(10-23-2024 05:43 PM)Pälzer Wrote:  Thanks.
One more quick question:
do the "" in \<< and \>> have a meaning ?

While searching here in the forum, I noticed that this is often used.

Question 2:
I would like to have the results in a list, as above

{ } ->L
...
...
->L

I'm curious if this will work, I'll try it out tomorrow evening.

edit: question 2 added

Regarding question 1, "Those slashes mark characters that don't have equivalents in ASCII. A 48/49 series calculator will insert them into an RPL program transferred in "text" mode to a PC."
See:
https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv015.cgi?read=86798


RE: (HP48) Beginner questions about RPL - Gil - 10-23-2024 09:05 PM

To see the list of all intermediate numbers in the algorithm, the given code could be modified as follows:

\<< DUP "Start number" \->TAG 1 \->LIST 0 ROT
WHILE DUP 1 >
REPEAT
IF DUP 2 MOD
THEN 3 * 1 +
ELSE 2 /
END SWAP 1 + SWAP DUP 4 ROLL SWAP + UNROT
END DROP "Steps" \->TAG
\>>

Or
<< DUP "Start number" ->TAG 1 ->LIST 0 ROT
WHILE DUP 1 >
REPEAT
IF DUP 2 MOD
THEN 3 * 1 +
ELSE 2 /
END SWAP 1 + SWAP DUP 4 ROLL SWAP + UNROT
END DROP "Steps" ->TAG
>>


RE: (HP48) Beginner questions about RPL - Pälzer - 10-24-2024 08:04 AM

Thanks Steve and Gil.

Code:
END SWAP 1 + SWAP DUP 4 ROLL SWAP + UNROT
an error message appears for this line.
I looked it up, UNROT was introduced with HP49, replaced the command with ROT ROT after looking through the manual.
And the code works fine.

I'll have to take a closer look at the code at the weekend (the lines 4-6 are no problem).

Question 3: Are there any other members here who program with the HP 48, etc.? Do you use the buttons for the commands or alpha ... ?
I have some trouble finding the respective keys. I think I'll have to make a list when I get the chance.


RE: (HP48) Beginner questions about RPL - Thomas Klemm - 10-24-2024 08:36 AM

(10-23-2024 05:43 PM)Pälzer Wrote:  One more quick question:
do the "" in \<< and \>> have a meaning ?

See: HP RPL TIO Table
This also allows to copy and paste code to the iHP48.
The string can then be translated using these IN and OUT programs.

(10-24-2024 08:04 AM)Pälzer Wrote:  Question 3: Are there any other members here who program with the HP 48, etc.?

I do, but I'm not the only one here.

(10-24-2024 08:04 AM)Pälzer Wrote:  Do you use the buttons for the commands or alpha ... ?

Mostly buttons but sometimes alpha is easier.


RE: (HP48) Beginner questions about RPL - Gil - 10-24-2024 10:14 AM

For the special characters like Greek m (mu).

Type the ShiftGreenKey, then MinusSign (you get the character ").
Type AlphaKey, then ShiftGreenKey, then 'Key (the key left to STOkey)
and Press ENTER key (you get "Greek mu").

Now press AlphaKey twice (to block characters/letters in a row)
and write the letters NUM (N is EVALkey, I is TANkey, M is the key left of STOkey)
and Press ENTER key (you get the character NUMBER 181).

Now with 181 in the Stack level 1
again press AlphaKey twice (to block characters/letters in a row)

and write the letters CHR (C is AlphaKey and Ckey, H is AlphaKey and PRGkey and R is AlphaRightArrowKey)
and Press ENTER key (and you get "mu" in quotation mark).

The HP50G has a helpful alphabetical catalogue of the commands that you can pick up directly instead of taping the letters.