50  REM:RAN1:29AUG73
100  DEF FNA()=INT(100*+1)
200  DIM B$[6],C[100],G[100,22],H[100,22]
210  PRINT '10"*SIZE OF GROUP TO BE SORTED?";
212  ENTER 30,Q8,N
214  IF Q8>0 THEN 222
215  PRINT '10"NEED HELP";
216  INPUT B$
217  IF B$[1,1]="N" THEN 210
220  CHAIN "$IDA13",8990
222  IF N=INT(N) AND N>1 THEN 230
224  PRINT '10"GIVE INTEGER >1!"
226  GOTO 210
230  MAT C=ZER[100]
235  PRINT '10"WANT RANDOM NUMBER PRINTOUT BEFORE SORTING ";
236  INPUT B$
237  IF B$[1,1]="N" THEN 280
250  PRINT '10"GROUP     RANDOM"'10'13"ORDER     NUMBER"
280  FOR I=1 TO N
290  X=RND(I)
299  IF B$[1,1]="N" THEN 320
300  PRINT  USING "#,4D6X";I
310  PRINT  USING "D.6D";X
320  Y=FNA(X)
330  C[Y]=C[Y]+1
334  IF C[Y] <= 22 THEN 340
336  PRINT "STARTING OVER--HIT A TECHNICAL SNAG"
338  GOTO 280
340  G[Y,C[Y]]=X
350  H[Y,C[Y]]=I
360  NEXT I
370  FOR I=1 TO 100
380  IF C[I] <= 1 THEN 520
390  FOR J=1 TO C[I]-1
400  FOR K=J+1 TO C[I]
410  IF G[I,J] <= G[I,K] THEN 480
420  T=G[I,J]
430  T1=H[I,J]
440  G[I,J]=G[I,K]
450  H[I,J]=H[I,K]
460  G[I,K]=T
470  H[I,K]=T1
480  NEXT K
510  NEXT J
520  NEXT I
580  PRINT '10"WANT PRINTOUT OF RANDOM NUMBERS";
590  INPUT B$
610  PRINT '10"GROUP     SAMPLE    RANDOM"'10'13"ORDER     ORDER     NUMBER"
660  I1=1
670  FOR I=1 TO 100
680  FOR J=1 TO C[I]
690  PRINT  USING "#,2(4D6X)";H[I,J],I1
700  IF B$[1,1]="N" THEN 738
720  PRINT  USING "D.6D";G[I,J]
730  I1=I1+1
737  GOTO 740
738  I1=I1+1
739  PRINT 
740  NEXT J
745  NEXT I
750  PRINT '10"ANOTHER SAMPLE ";
755  INPUT B$
760  IF B$[1,1]="N" THEN 9998
765  GOTO 210
9998  PRINT '10"TYPE 'GET-$IDA' AND 'RUN' TO USE IDA AGAIN."
9999  END 
