REM Stem-and-leaf plot DECLARE SUB LeafPlot (X%()) DECLARE SUB ShellSortInt (A%()) CONST MAXDATNDX = 120 DIM Dat%(MAXDATNDX) FOR I% = 0 TO MAXDATNDX READ Dat%(I%) NEXT I% DATA 12, 127, 28, 42, 39, 113, 42, 18, 44, 118, 44, 37, 113, 124 DATA 37, 48, 127, 36, 29, 31, 125, 139, 131, 115, 105, 132, 104, 123 DATA 35, 113, 122, 42, 117, 119, 58, 109, 23, 105, 63, 27, 44, 105 DATA 99, 41, 128, 121, 116, 125, 32, 61, 37, 127, 29, 113, 121, 58 DATA 114, 126, 53, 114, 96, 25, 109, 7, 31, 141, 46, 13, 27, 43 DATA 117, 116, 27, 7, 68, 40, 31, 115, 124, 42, 128, 52, 71, 118 DATA 117, 38, 27, 106, 33, 117, 116, 111, 40, 119, 47, 105, 57, 122 DATA 109, 124, 115, 43, 120, 43, 27, 27, 18, 28, 48, 125, 107, 114 DATA 34, 133, 45, 120, 30, 127, 31, 116, 146 LeafPlot Dat%() END SUB LeafPlot (X%()) ShellSortInt X%() I% = X%(0) \ 10 - 1 FOR J% = 0 TO UBOUND(X%) D% = X%(J%) \ 10 WHILE D% > I% I% = I% + 1 IF J% THEN PRINT PRINT USING "## |"; I%; WEND PRINT USING "##"; X%(J%) MOD 10; NEXT PRINT END SUB SUB ShellSortInt (A%()) N% = UBOUND(A%) + 1 Incr% = N% \ 2 WHILE Incr% > 0 FOR I% = Incr% TO N% - 1 J% = I% - Incr% WHILE J% >= 0 IF A%(J%) > A%(J% + Incr%) THEN SWAP A%(J%), A%(J% + Incr%) J% = J% - Incr% ELSE J% = -1 END IF WEND NEXT I% Incr% = Incr% \ 2 WEND END SUB