all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
FUNCTION beadSort RETURNS CHAR (
|
||||
i_c AS CHAR
|
||||
):
|
||||
|
||||
DEF VAR cresult AS CHAR.
|
||||
DEF VAR ii AS INT.
|
||||
DEF VAR inumbers AS INT.
|
||||
DEF VAR irod AS INT.
|
||||
DEF VAR irods AS INT.
|
||||
DEF VAR crod AS CHAR.
|
||||
DEF VAR cbeads AS CHAR EXTENT.
|
||||
|
||||
inumbers = NUM-ENTRIES( i_c ).
|
||||
|
||||
/* determine number of rods needed */
|
||||
DO ii = 1 TO inumbers:
|
||||
irods = MAXIMUM( irods, INTEGER( ENTRY( ii, i_c ) ) ).
|
||||
END.
|
||||
|
||||
/* put beads on rods */
|
||||
EXTENT( cbeads ) = inumbers.
|
||||
DO ii = 1 TO inumbers:
|
||||
cbeads[ ii ] = FILL( "X", INTEGER( ENTRY( ii, i_c ) ) ).
|
||||
END.
|
||||
|
||||
/* drop beads on each rod */
|
||||
DO irod = 1 TO irods:
|
||||
crod = "".
|
||||
DO ii = 1 TO inumbers:
|
||||
crod = crod + SUBSTRING( cbeads[ ii ], irod, 1 ).
|
||||
END.
|
||||
crod = REPLACE( crod, " ", "" ).
|
||||
DO ii = 1 TO inumbers.
|
||||
SUBSTRING( cbeads[ ii ], irod, 1 ) = STRING( ii <= LENGTH( crod ), "X/ " ).
|
||||
END.
|
||||
END.
|
||||
|
||||
/* get beads from rods */
|
||||
DO ii = 1 TO inumbers:
|
||||
cresult = cresult + "," + STRING( LENGTH( REPLACE( cbeads[ ii ], " ", "" ) ) ).
|
||||
END.
|
||||
|
||||
RETURN SUBSTRING( cresult, 2 ).
|
||||
|
||||
END FUNCTION. /* beadSort */
|
||||
|
||||
MESSAGE
|
||||
"5,2,4,1,3,3,9 -> " beadSort( "5,2,4,1,3,3,9" ) SKIP
|
||||
"5,3,1,7,4,1,1 -> " beadSort( "5,3,1,7,4,1,1" ) SKIP(1)
|
||||
beadSort( "88,18,31,44,4,0,8,81,14,78,20,76,84,33,73,75,82,5,62,70,12,7,1" )
|
||||
VIEW-AS ALERT-BOX.
|
||||
Loading…
Add table
Add a link
Reference in a new issue