Floyd's triangle: Difference between revisions
Content added Content deleted
No edit summary |
(RPL: add section) |
||
Line 6,056: | Line 6,056: | ||
92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
||
</pre> |
</pre> |
||
=={{header|RPL}}== |
|||
HP-28 display has 4 lines only, so the task must be run on an HP-48 or greater to achieve n=5, with the advantage of benefitting from additional instructions: <code>INCR</code> increments a variable and returns its updated value and <code>FREEZE</code> acts as a <code>DO UNTIL KEY END</code> loop. |
|||
n=14 is out of reach for HP-48+, since only capable of displaying 22 characters per line. |
|||
{| class="wikitable" |
|||
! RPL code |
|||
! Comment |
|||
|- |
|||
| |
|||
≪ |
|||
0 → c |
|||
≪ CLLCD 1 5 '''FOR''' line |
|||
"" '''DO''' |
|||
'''IF''' c 9 < '''THEN''' " " + '''END''' |
|||
'c' INCR →STR + " " + |
|||
'''UNTIL''' line DUP 1 + * 2 / c == '''END''' |
|||
line DISP |
|||
'''NEXT''' 3 FREEZE |
|||
≫ ≫ ‘'''FLOYD'''’ STO |
|||
| |
|||
'''FLOYD''' ''( -- )'' |
|||
initialize counter |
|||
clear screen, for line=1 to 5 |
|||
initialize output string, loop |
|||
if counter<9 then add one space |
|||
increment counter and put it in string |
|||
until line*(line+1)/2 == counter |
|||
display string |
|||
freeze screen until key pressed |
|||
. |
|||
|} |
|||
====Output==== |
|||
[https://aerobarfilms.files.wordpress.com/2023/04/hp-48-floyds-triangle-1-15.png Screenshot from HP-48 emulator] |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |