Add all the A tasks
This commit is contained in:
parent
2dd7375f96
commit
051504d65b
1608 changed files with 18584 additions and 0 deletions
49
Task/Align-columns/REXX/align-columns-1.rexx
Normal file
49
Task/Align-columns/REXX/align-columns-1.rexx
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/*REXX*/
|
||||
z.1 = "Given$a$text$file$of$many$lines,$where$fields$within$a$line$"
|
||||
z.2 = "are$delineated$by$a$single$'dollar'$character,$write$a$program"
|
||||
z.3 = "that$aligns$each$column$of$fields$by$ensuring$that$words$in$each$"
|
||||
z.4 = "column$are$separated$by$at$least$one$space."
|
||||
z.5 = "Further,$allow$for$each$word$in$a$column$to$be$either$left$"
|
||||
z.6 = "justified,$right$justified,$or$center$justified$within$its$column."
|
||||
|
||||
word. = ""
|
||||
width. = 0
|
||||
maxcol = 0
|
||||
do row = 1 to 6
|
||||
line = z.row
|
||||
do col = 1 by 1 until length(line) = 0
|
||||
parse var line word.row.col "$" line
|
||||
if length(word.row.col) > width.col then width.col = length(word.row.col)
|
||||
end
|
||||
if col > maxcol then maxcol = col
|
||||
end
|
||||
|
||||
say "align left:"
|
||||
say
|
||||
do row = 1 to 6
|
||||
out = ""
|
||||
do col = 1 to maxcol
|
||||
out = out || left(word.row.col,width.col+1)
|
||||
end
|
||||
say out
|
||||
end
|
||||
say
|
||||
say "align right:"
|
||||
say
|
||||
do row = 1 to 6
|
||||
out = ""
|
||||
do col = 1 to maxcol
|
||||
out = out || right(word.row.col,width.col+1)
|
||||
end
|
||||
say out
|
||||
end
|
||||
say
|
||||
say "align center:"
|
||||
say
|
||||
do row = 1 to 6
|
||||
out = ""
|
||||
do col = 1 to maxcol
|
||||
out = out || center(word.row.col,width.col+1)
|
||||
end
|
||||
say out
|
||||
end
|
||||
35
Task/Align-columns/REXX/align-columns-2.rexx
Normal file
35
Task/Align-columns/REXX/align-columns-2.rexx
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/*REXX program to display various alignments. */
|
||||
cols=0; size=0; wid.=0; t.=; @.=
|
||||
|
||||
t.1 = "Given$a$text$file$of$many$lines,$where$fields$within$a$line$"
|
||||
t.2 = "are$delineated$by$a$single$'dollar'$character,$write$a$program"
|
||||
t.3 = "that$aligns$each$column$of$fields$by$ensuring$that$words$in$each$"
|
||||
t.4 = "column$are$separated$by$at$least$one$space."
|
||||
t.5 = "Further,$allow$for$each$word$in$a$column$to$be$either$left$"
|
||||
t.6 = "justified,$right$justified,$or$center$justified$within$its$column."
|
||||
|
||||
do r=1 while t.r\==''
|
||||
_=strip(t.r,,'$')
|
||||
do c=1 until _==''
|
||||
parse var _ @.r.c '$' _
|
||||
wid.c=max(wid.c,length(@.r.c))
|
||||
end /*c*/
|
||||
cols=max(cols,c)
|
||||
end /*r*/
|
||||
|
||||
rows=r-1 /*adjust ROWS, it's 1 too big*/
|
||||
do k=1 for cols; size=size+wid.k; end /*find width of biggest line.*/
|
||||
|
||||
do j=1 for 3; say
|
||||
say center(word('left right center',j) "aligned",size+cols-1,"=")
|
||||
|
||||
do r=1 for rows; _=
|
||||
do c=1 for cols; x=@.r.c
|
||||
if j==1 then _=_ left(x,wid.c)
|
||||
if j==2 then _=_ right(x,wid.c)
|
||||
if j==3 then _=_ centre(x,wid.c)
|
||||
end /*c*/
|
||||
say substr(_,2)
|
||||
end /*r*/
|
||||
say
|
||||
end /*j*/
|
||||
43
Task/Align-columns/REXX/align-columns-3.rexx
Normal file
43
Task/Align-columns/REXX/align-columns-3.rexx
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/*REXX program to display various alignments. */
|
||||
cols=0; parse var cols size 1 wid. t. /*initializations.*/
|
||||
|
||||
t.1 = "Given$a$text$file$of$many$lines,$where$fields$within$a$line$"
|
||||
t.2 = "are$delineated$by$a$single$'dollar'$character,$write$a$program"
|
||||
t.3 = "that$aligns$each$column$of$fields$by$ensuring$that$words$in$each$"
|
||||
t.4 = "column$are$separated$by$at$least$one$space."
|
||||
t.5 = "Further,$allow$for$each$word$in$a$column$to$be$either$left$"
|
||||
t.6 = "justified,$right$justified,$or$center$justified$within$its$column."
|
||||
|
||||
do r=1 while t.r\==''
|
||||
t.r=translate(t.r,,'$')
|
||||
do c=1 until word(t.r,c)==''
|
||||
wid.c=max(wid.c,length(word(t.r,c)))
|
||||
end /*c*/
|
||||
cols=max(cols,c)
|
||||
end /*r*/
|
||||
|
||||
rows=r-1 /*adjust ROWS, it's 1 too big*/
|
||||
|
||||
do k=1 for cols; size=size+wid.k; end /*find width of biggest line.*/
|
||||
|
||||
do j=1 for 3; say
|
||||
say center(word('left right center',j) "aligned",size+cols,"="); say
|
||||
|
||||
do r=0 to rows; _=; !='│'; if r==0 then !='┬'
|
||||
|
||||
do c=1 for cols; x=word(t.r,c)
|
||||
if r==0 then x=copies("─",wid.c+1)
|
||||
else x=word(t.r,c)
|
||||
if j==1 then _=_ || ! || left(x,wid.c)
|
||||
if j==2 then _=_ || ! || right(x,wid.c)
|
||||
if j==3 then _=_ || ! || centre(x,wid.c)
|
||||
end /*c*/
|
||||
|
||||
if r==0 then do; _='┌'substr(_,2,length(_)-2)"┐"
|
||||
bot='└'substr(_,2,length(_)-2)"┘"
|
||||
end
|
||||
say _
|
||||
end /*r*/
|
||||
|
||||
say translate(bot,'┴',"┬"); say; say
|
||||
end /*j*/
|
||||
Loading…
Add table
Add a link
Reference in a new issue