Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
26
Task/Stem-and-leaf-plot/REXX/stem-and-leaf-plot-1.rexx
Normal file
26
Task/Stem-and-leaf-plot/REXX/stem-and-leaf-plot-1.rexx
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/*REXX program displays a stem and leaf plot of any non-negative numbers [can include 0]*/
|
||||
parse arg @ /* [↓] Not specified? Then use default*/
|
||||
if @='' then @=12 127 28 42 39 113 42 18 44 118 44 37 113 124 37 48 127 36 29 31 125 139,
|
||||
131 115 105 132 104 123 35 113 122 42 117 119 58 109 23 105 63 27 44 105 99 41 128 121,
|
||||
116 125 32 61 37 127 29 113 121 58 114 126 53 114 96 25 109 7 31 141 46 13 27 43 117,
|
||||
116 27 7 68 40 31 115 124 42 128 52 71 118 117 38 27 106 33 117 116 111 40 119 47 105,
|
||||
57 122 109 124 115 43 120 43 27 27 18 28 48 125 107 114 34 133 45 120 30 127 31 116 146
|
||||
#.=; bot=.; top=. /* [↑] define all #. elements as null.*/
|
||||
do j=1 for words(@); y=word(@, j) /*◄─── process each number in the list.*/
|
||||
if \datatype(y,"N") then do; say '***error*** item' j "isn't numeric:" y; exit; end
|
||||
if y<0 then do; say '***error*** item' j "is negative:" y; exit; end
|
||||
n=format(y, , 0) / 1 /*normalize the numbers (not malformed)*/
|
||||
stem=word(left(n, length(n) -1) 0, 1) /*obtain stem (1st digits) from number.*/
|
||||
parse var n '' -1 leaf; _=stem * sign(n) /* " leaf (last digit) " " */
|
||||
if bot==. then do; bot=_; top=_; end /*handle the first case for TOP and BOT*/
|
||||
bot=min(bot, _); top=max(top, _) /*obtain the minimum and maximum so far*/
|
||||
#.stem.leaf= #.stem.leaf leaf /*construct sorted stem-and-leaf entry.*/
|
||||
end /*j*/
|
||||
|
||||
w=max(length(min), length(max) ) + 1 /*W: used to right justify the output.*/
|
||||
/* [↓] display the stem-and-leaf plot.*/
|
||||
do k=bot to top; $= /*$: is the output string, a plot line*/
|
||||
do m=0 for 10; $=$ #.k.m /*build a line for the stem─&─leaf plot*/
|
||||
end /*m*/
|
||||
say right(k, w) '║' space($) /*display a line of stem─and─leaf plot.*/
|
||||
end /*k*/ /*stick a fork in it, we're all done. */
|
||||
31
Task/Stem-and-leaf-plot/REXX/stem-and-leaf-plot-2.rexx
Normal file
31
Task/Stem-and-leaf-plot/REXX/stem-and-leaf-plot-2.rexx
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
/*REXX program displays a stem─and─leaf plot of any real numbers [can be: neg, 0, pos].*/
|
||||
parse arg @ /*obtain optional arguments from the CL*/
|
||||
if @='' then @='15 14 3 2 1 0 -1 -2 -3 -14 -15' /*Not specified? Then use the default.*/
|
||||
#.=; bot=.; top=.; z=. /* [↑] define all #. elements as null.*/
|
||||
do j=1 for words(@); y=word(@, j) /*◄─── process each number in the list.*/
|
||||
if \datatype(y,"N") then do; say '***error*** item' j "isn't numeric:" y; exit; end
|
||||
n=format(y,,0)/1; an=abs(n); s=sign(n) /*normalize the numbers (not malformed)*/
|
||||
stem=left(an, length(an) -1)
|
||||
if stem=='' then if s>=0 then stem=0 /*handle case of one-digit positive #. */
|
||||
else stem='-0' /* " " " " " negative " */
|
||||
else stem=s * stem /* " " " a multi-digit number.*/
|
||||
parse var n '' -1 leaf /*obtain the leaf (the last digit) of #*/
|
||||
if bot==. then do; bot=stem; top=bot; end /*handle the first case for TOP and BOT*/
|
||||
bot=min(bot, stem); top=max(top, stem) /*obtain the minimum and maximum so far*/
|
||||
if stem=='-0' then z=0 /*use Z as a flag to show negative 0.*/
|
||||
#.stem.leaf= #.stem.leaf leaf /*construct sorted stem-and-leaf entry.*/
|
||||
end /*j*/
|
||||
|
||||
w=max(length(min), length(max) ) + 1 /*W: used to right─justify the output.*/
|
||||
!='-0' /* [↓] display the stem-and-leaf plot.*/
|
||||
do k=bot to top; $= /*$: is the output string, a plot line*/
|
||||
if k==z then do /*handle a special case for negative 0.*/
|
||||
do s=0 for 10; $=$ #.!.s /*build a line for the stem─&─leaf plot*/
|
||||
end /*s*/ /* [↑] address special case of -zero.*/
|
||||
say right(!, w) '║' space($) /*display a line of stem─and─leaf plot.*/
|
||||
end /* [↑] handles special case of -zero.*/
|
||||
$= /*a new plot line (of output). */
|
||||
do m=0 for 10; $=$ #.k.m /*build a line for the stem─&─leaf plot*/
|
||||
end /*m*/
|
||||
say right(k, w) '║' space($) /*display a line of stem─and─leaf plot.*/
|
||||
end /*k*/ /*stick a fork in it, we're all done. */
|
||||
Loading…
Add table
Add a link
Reference in a new issue