10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
50  REM:30AUG73
150  DIM D$[10],B$[10]
160  C1=0
200  GOTO Q9 OF 210,210,400
210  PRINT '10"WANT LIST OF SUBCOMMAND NAMES ";
220  INPUT B$
230  IF B$[1,1]="N" THEN 350
240  PRINT '10"COMMAND   PROCEDURE"
250  PRINT "*******   *********"
260  PRINT "  SYST    SYSTEMATIC SAMPLING"
270  PRINT "  RAN1    SIMPLE RANDOM SAMPLING BY SORTING"
280  PRINT "  RAN2    SIMPLE RANDOM SAMPLING BY DRAWING RANDOM NUMBERS"
290  PRINT "  SRAN    STRATIFIED RANDOM SAMPLING"
320  PRINT "  NONE    NONE OF THE ABOVE"
330  GOTO 8900
340  GOTO Q9 OF 350,350,400
350  PRINT '10"*WHICH PROCEDURE DO YOU WANT TO USE? ";
360  ENTER 30,Q8,D$
370  PRINT 
380  IF Q8>0 THEN 470
390  GOTO 240
400  C1=C1+1
410  PRINT '10"*WHICH PROCEDURE ?";
420  ENTER 30,Q8,D$
430  PRINT 
440  IF Q8>0 THEN 470
450  IF C1=1 THEN 240
460  GOTO 350
470  IF D$[1,4]="SYST" THEN 2000
480  IF D$[1,4]="RAN1" THEN 2500
490  IF D$[1,4]="RAN2" THEN 3000
500  IF D$[1,4]="SRAN" THEN 4000
540  IF D$[1,4]="NONE" THEN 9998
550  REM
560  REM
570  REM
580  PRINT "INVALID COMMAND"
590  GOTO 340
2000  REM: SYSTEMATIC SAMPLING IMPLEMENTATION
2010  GOTO 4005
2500  GOSUB 8800
2510  CHAIN "$IDA13A"
3000  GOSUB 8800
3010  CHAIN "$IDA13B"
4000  REM:SRAN IMPLEMENTATION --OLD HVR13
4005  GOTO Q9 OF 4014,4014,4010
4010  PRINT '10"*POPULATION SIZE  ?";
4012  GOTO 4015
4014  PRINT '10"*SIZE OF POPULATION TO BE SAMPLED  ?";
4015  ENTER 30,Q8,N
4020  PRINT 
4025  IF Q8>0 THEN 4047
4030  PRINT '10"NEED HELP ";
4035  INPUT B$
4040  IF B$[1,1]="N" THEN 4010
4042  PRINT '10"YOU WILL GET A LIST OF SUBCOMMAND NAMES"
4044  PRINT "FOR WHICH YOU MAY REQUEST FURTHER EXPLANATIONS."'10'13
4046  GOTO 240
4047  IF N=INT(N) AND N>1 THEN 4050
4048  PRINT "TRY AGAIN!  GIVE AN INTEGER >1."
4049  GOTO 4010
4050  PRINT '10"DESIRED MINIMUM SAMPLE SIZE ";
4060  INPUT N1
4061  IF N1<1 THEN 4064
4062  IF N1=INT(N1) AND N1<N THEN 4070
4064  PRINT "TRY AGAIN! GIVE AN INTEGER >0 AND < "N
4066  GOTO 4050
4070  LET K=INT(N/N1)
4080  PRINT '10"THE SAMPLING INTERVAL IS "K'10'13"SO "N1" OBSERVATIONS WILL BE DRAWN"
4090  PRINT "FROM THE FIRST "N1" TIMES "K" ELEMENTS OF THE POPULATION."
4120  N4=N-K*N1
4122  IF N4=0 THEN 4180
4170  PRINT "AN INCOMPLETE INTERVAL OF LENGTH "N4" IS LEFT AT THE END."
4180  PRINT '10"THE FOLLOWING ARE THE SAMPLE ELEMENTS:"'10'13
4182  IF D$[1,4]="SYST" THEN 4400
4190  FOR I=1 TO N1
4200  LET Y=RND(I)
4210  LET Y1=INT(K*Y+1)
4220  LET Y2=(I-1)*K+Y1
4230  PRINT Y2;
4240  NEXT I
4260  IF N4=0 THEN 4370
4330  Y=RND(N1+1)
4340  LET Y1=INT(N4*Y+1)
4350  Y2=N1*K+Y1
4354  PRINT Y2
4356  N1=N1+1
4360  GOSUB 4500
4365  GOTO 4375
4370  GOSUB 4510
4375  INPUT B$
4377  IF B$[1,1]="N" THEN 9998
4380  GOTO 4005
4400  Y=RND(N1)
4405  Y=INT(K*Y+1)
4410  PRINT Y;
4415  FOR I=2 TO N1
4420  Y=Y+K
4425  PRINT Y;
4430  NEXT I
4435  Y2=Y+K
4440  IF Y2>N THEN 4448
4442  PRINT Y2
4443  N1=N1+1
4445  GOSUB 4500
4447  GOTO 4455
4448  GOSUB 4510
4455  INPUT B$
4460  IF B$[1,1]="N" THEN 9998
4470  GOTO 4005
4500  PRINT "THE LAST ITEM,"Y2",COMES FROM THE INCOMPLETE"
4505  PRINT "INTERVAL AT THE END."
4510  PRINT '10"ACTUAL SAMPLE SIZE IS "N1
4520  PRINT '10"WANT ANOTHER SAMPLE ";
4530  RETURN 
8800  PRINT "WARNING!!!"
8805  IF Q9>2 THEN 8840
8810  GOSUB 9400
8840  PRINT "WANT TO CONTINUE ";
8850  INPUT B$
8860  IF B$[1,1]="N" THEN 9998
8870  RETURN 
8900  PRINT '10"WANT MORE DETAILED EXPLANATIONS ";
8905  INPUT B$
8910  IF B$[1,1]="N" THEN 340
8915  PRINT '10"WHICH SUBCOMMAND DO YOU WANT EXPLAINED  ";
8920  INPUT D$
8925  IF D$[1,4]="SYST" THEN 9300
8930  IF D$[1,4]="RAN1" THEN 8952
8935  IF D$[1,4]="RAN2" THEN 9200
8940  IF D$[1,4]="SRAN" THEN 9100
8945  PRINT "INVALID RESPONSE!"'10'13"USE SYST, RAN1, RAN2 OR SRAN."
8950  GOTO 8920
8952  GOSUB 9000
8955  PRINT '10"MORE EXPLANATIONS ";
8960  GOTO 8905
8990  D$[1,4]="RAN1"
8992  GOSUB 9000
8995  CHAIN "$IDA13A"
9000  PRINT '10"SIMPLE RANDOM SAMPLING BY SORTING"'10
9002  PRINT "     THIS PROCEDURE CAN BE USED TO SORT A POPULATION OF SIZE"
9004  PRINT "N INTO A RANDOM SEQUENCE.  THIS IS OFTEN USEFUL FOR THE"
9006  PRINT "FORMATION OF RANDOM SUBGROUPS IN AN EXPERIMENT.  IT CAN BE"
9008  PRINT "USED ALSO FOR SEQUENTIAL SAMPLING OF SMALL FINITE POPULATIONS."
9010  PRINT "     THE INDIVIDUALS IN YOUR POPULATION MUST HAVE BEEN NUM-"
9012  PRINT "BERED CONSECUTIVELY FROM 1 TO N FOR IDENTIFICATION."
9014  PRINT "     WHEN YOU RUN THE PROGRAM YOU ARE ASKED THE SIZE OF"
9016  PRINT "THE POPULATION.  YOU ARE THEN GIVEN THE OPTION OF A PRINT-"
9018  PRINT "OUT OF THE ORIGINAL ORDERING OF THE POPULATION WITH THE"
9020  PRINT "RANDOM NUMBERS ASSIGNED TO EACH ELEMENT THEREOF.  FINALLY,"
9022  PRINT "YOU ARE GIVEN THE PRINTOUT OF THE RANDOM ORDERING OF THE"
9024  PRINT "POPULATION AND THE RANDOM NUMBER OF EACH INDIVIDUAL.  FOR"
9026  PRINT "SPEED OF PRINTOUT, YOU CAN ELECT TO SUPPRESS THE RANDOM"
9028  PRINT "NUMBER, SINCE ONLY THE ORDERING IS NEEDED FOR STATISTICAL"
9030  PRINT "PURPOSES."
9032  PRINT "     YOU CAN USE THIS PROGRAM FOR SORTS OF UP TO ABOUT 800"
9034  PRINT "ITEMS WITHOUT EXCESSIVE COMPUTER TIME.  FOR N=750 A SORT"
9036  PRINT "TOOK LESS THAN ONE MINUTE OF CONNECT TIME."
9038  PRINT '10"WARNING!"
9040  GOSUB 9400
9042  RETURN 
9100  PRINT '10"STRATIFIED RANDOM SAMPLING"'10
9102  PRINT "     PROCEDURE SELECTS ONE ELEMENT AT RANDOM FROM EACH"
9104  PRINT "SUCCESSIVE GROUP OF K ELEMENTS IN A POPULATION OF N"
9106  PRINT "ELEMENTS NUMBERED SERIALLY FROM 1 TO N.  IT SELECTS ONE"
9108  PRINT "ELEMENT FROM THE FINAL INCOMPLETE GROUP, IF THERE IS ONE."'10
9110  GOTO 9310
9200  PRINT '10"SIMPLE RANDOM SAMPLING BY DRAWING OF RANDOM NUMBERS UNTIL"
9202  PRINT "DESIRED UNDUPLICATED SAMPLE SIZE IS REACHED."'10
9204  PRINT "   THIS PROCEDURE SELECTS A RANDOM SAMPLE OF N1 FROM A FINITE"
9206  PRINT "POPULATION OF N, SELECTION WITHOUT REPLACEMENT.  THE USER IS "
9208  PRINT "ASKED FOR N AND N1, AND THE SAMPLE ELEMENTS ARE PRINTED OUT IN"
9210  PRINT "ORDER OF THEIR LISTING IN THE POPULATION. IT SHOULD BE POSSIBLE"
9212  PRINT "TO SELECT SAMPLES OF SIZE 1000 OR SO WITHOUT USING EXCESSIVE"
9214  PRINT "COMPUTER TIME, UNLESS BOTH N1 AND N1/N ARE LARGE."
9221  PRINT '10"WARNING!"
9222  GOSUB 9400
9224  GOTO 8955
9300  PRINT '10"SYSTEMATIC SAMPLING"'10
9302  PRINT "     PROCEDURE SELECTS ONE ELEMENT AT RANDOM FROM THE FIRST K"
9304  PRINT "ELEMENTS IN A POPULATION OF N ELEMENTS NUMBERED SERIALLY FROM"
9306  PRINT "1 TO N, AND THEN SELECTS EVERY SUBSEQUENT KTH ELEMENT OF THE"
9308  PRINT "POPULATION STARTING FROM THIS RANDOMLY SELECTED ELEMENT."'10
9310  PRINT "     USER IS ASKED FOR POPULATION SIZE, N, AND MINIMUM RE-"
9312  PRINT "QUIRED SAMPLE SIZE, N1.  ACTUAL SAMPLE SIZE MAY BE N1 OR N1+1."
9314  GOTO 8955
9400  PRINT "USE OF "D$[1,4]
9410  PRINT "WILL PREVENT RETURN TO IDA COMMAND LEVEL"
9420  PRINT "AND ANY DATA ENTERED WILL BE LOST."
9430  RETURN 
9998  CHAIN "$IDA",150
9999  END 
