56 lines
1.4 KiB
Plaintext
56 lines
1.4 KiB
Plaintext
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
|