67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
\ Stem-and-leaf plot
|
|
code Rem=2, CrLf=9, Text=12;
|
|
code real RlOut=48, Float=49, Format=52;
|
|
define DataSize = 121;
|
|
integer Data;
|
|
|
|
procedure ShellSortInt(A, N);
|
|
integer A, N;
|
|
integer I, J, Incr, Tmp;
|
|
begin
|
|
Incr:= N / 2;
|
|
while Incr > 0 do
|
|
begin
|
|
for I:= Incr, N - 1 do
|
|
begin
|
|
J:= I - Incr;
|
|
while J >= 0 do
|
|
begin
|
|
if A(J) > A(J + Incr) then
|
|
begin
|
|
Tmp:= A(J);
|
|
A(J):= A(J + Incr);
|
|
A(J + Incr):= Tmp;
|
|
J:= J - Incr
|
|
end
|
|
else
|
|
J:= -1
|
|
end;
|
|
end;
|
|
Incr:= Incr / 2
|
|
end;
|
|
end;
|
|
|
|
procedure LeafPlot (X, N);
|
|
integer X, N;
|
|
integer D, I, J;
|
|
begin
|
|
ShellSortInt(X, N);
|
|
I:= X(0) / 10 - 1;
|
|
Format(2,0);
|
|
for J:= 0, N - 1 do
|
|
begin
|
|
D:= X(J) / 10;
|
|
while D > I do
|
|
begin
|
|
I:= I + 1;
|
|
if J then CrLf(0);
|
|
RlOut(0, Float(I)); Text(0, " |");
|
|
end;
|
|
RlOut(0, Float(Rem(X(J) / 10)));
|
|
end;
|
|
CrLf(0);
|
|
end;
|
|
|
|
begin
|
|
Data:= [ 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];
|
|
LeafPlot(Data, DataSize)
|
|
end;
|