Floyd's triangle: Difference between revisions

Added solution for Action!
(→‎{{header|IS-BASIC}}: Flag incorrect spacing)
(Added solution for Action!)
Line 128:
79 80 81 82 83 84 85 86 87 88 89 90 91
92 93 94 95 96 97 98 99 100 101 102 103 104 105
</pre>
 
=={{header|Action!}}==
<lang Action!>PROC Triangle(BYTE level)
INT v,i
BYTE x,y
BYTE ARRAY widths(20)
CHAR ARRAY tmp(5)
 
v=1
FOR y=1 TO level-1
DO
v==+y
OD
FOR x=0 TO level-1
DO
StrI(v+x,tmp)
widths(x)=tmp(0)
OD
 
v=1
FOR y=1 TO level
DO
FOR x=0 TO y-1
DO
StrI(v,tmp)
FOR i=tmp(0) TO widths(x)-1
DO
Put(32)
OD
Print(tmp)
IF x<y-1 THEN
Put(32)
ELSE
PutE()
FI
v==+1
OD
OD
RETURN
 
PROC Main()
BYTE LMARGIN=$52,oldLMARGIN
 
oldLMARGIN=LMARGIN
LMARGIN=0 ;remove left margin on the screen
 
Put(125) PutE() ;clear the screen
Triangle(5)
PutE()
Triangle(13)
 
LMARGIN=oldLMARGIN ;restore left margin on the screen
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Floyd's_triangle.png Screenshot from Atari 8-bit computer]
<pre>
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
 
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45
46 47 48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63 64 65 66
67 68 69 70 71 72 73 74 75 76 77 78
79 80 81 82 83 84 85 86 87 88 89 90 91
</pre>
 
Anonymous user