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:12MAY74
60  REM: 2-WAY TABLE OF MEANS
62  REM: >MTAB
150  DIM C[22,10],D[22,10]
152  DIM H$[6],V$[6],D$[6]
154  DIM A$[8],B$[8]
300  MAT C=ZER
301  D=Q[13]
302  Q[13]=0
305  MAT D=ZER
325  PRINT "NEED TO DEFINE CLASS INTERVALS";
330  INPUT B$[1,1]
340  PRINT 
350  IF B$[1,1]="N" THEN 370
360  GOTO 440
370  FOR I=Q4 TO N
380  IF X[I,K9+2]=0 THEN 420
390  V=X[I,Q[8]]
400  H=X[I,Q[9]]
405  Z=X[I,D]
410  C[V,H]=C[V,H]+1
415  D[V,H]=D[V,H]+Z
420  NEXT I
430  GOTO 760
440  N1=0
450  FOR I=Q4 TO N
460  IF X[I,K9+2]=0 THEN 480
470  N1=N1+1
480  NEXT I
490  Q=Q[8]
500  PRINT "VERTICAL VARIABLE:"
510  GOSUB 2000
520  V1=M
530  V2=W
540  Q=Q[9]
550  PRINT "HORIZONTAL VARIABLE:"
560  GOSUB 2000
570  H1=M
580  H2=W
600  FOR I=Q4 TO N
610  IF X[I,K9+2]=0 THEN 750
615  Z=X[I,D]
620  V=(X[I,Q[8]]-V1)/V2+11
630  V=INT(V+.5)
640  IF V>0 THEN 660
650  V=1
660  IF V<22 THEN 680
670  V=21
680  H=(X[I,Q[9]]-H1)/H2+5
690  H=INT(H+.5)
700  IF H>0 THEN 720
710  H=1
720  IF H<10 THEN 740
730  H=9
740  C[V,H]=C[V,H]+1
745  D[V,H]=D[V,H]+Z
750  NEXT I
760  FOR I=1 TO 21
770  Z=Z1=0
780  FOR J=1 TO 9
790  Z=C[I,J]+Z
795  Z1=D[I,J]+Z1
800  NEXT J
810  C[I,10]=Z
815  D[I,10]=Z1
820  NEXT I
830  FOR J=1 TO 10
840  Z=Z1=0
850  FOR I=1 TO 21
860  Z=C[I,J]+Z
865  Z1=D[I,J]+Z1
870  NEXT I
880  C[22,J]=Z
885  D[22,J]=Z1
890  NEXT J
900  IF Q3#1 THEN 982
910  IF Q[8]>10 THEN 940
920  V$=M$[6*Q[8]-5,6*Q[8]]
930  GOTO 950
940  V$=N$[6*Q[8]-65,6*Q[8]-60]
950  IF Q[9]>10 THEN 980
960  H$=M$[6*Q[9]-5,6*Q[9]]
970  GOTO 982
980  H$=N$[6*Q[9]-65,6*Q[9]-60]
982  PRINT "WANT JOINT FREQUENCIES";
984  INPUT B$
985  PRINT 
986  IF B$[1,1]="N" THEN 1030
988  IF Q3#1 THEN 1010
990  PRINT "JOINT DISTRIBUTION OF "V$" VERSUS "H$
1000  PRINT 
1010  A$="#,4D2X"
1015  F=0
1020  GOSUB 3000
1030  IF Q3#1 THEN 1080
1040  IF D>10 THEN 1070
1050  D$=M$[6*D-5,6*D]
1060  GOTO 1080
1070  D$=N$[6*D-65,6*D-60]
1079  W5=2^16
1080  FOR I=1 TO 22
1085  IF C[I,10]=0 THEN 1120
1090  FOR J=1 TO 10
1095  IF C[I,J]=0 THEN 1110
1100  D[I,J]=D[I,J]/C[I,J]
1110  NEXT J
1120  NEXT I
1125  GOTO Q9 OF 1130,1130,1150
1130  PRINT "MEANS WILL BE PRINTED OUT IN INTEGER FORMAT 'DDDDD'."
1132  PRINT "GIVE POWER OF 10 THAT, WHEN MULTIPLIED BY THE ORIGINAL"
1133  PRINT "MEANS, WILL GIVE THE NUMBERS PRINTED OUT."
1140  GOTO 1160
1150  PRINT "SCALING FACTOR: POWER OF 10";
1160  INPUT E
1165  PRINT 
1170  A$="#,5DX"
1180  FOR I=1 TO 22
1190  FOR J=1 TO 10
1195  IF C[I,J]=0 THEN 1210
1200  D[I,J]=10^E*D[I,J]
1210  NEXT J
1220  NEXT I
1225  PRINT "TABLE OF MEANS ";
1231  IF E=0 THEN 1246
1232  PRINT "(TIMES ";
1233  IF E<0 THEN 1239
1234  PRINT "1";
1235  FOR J=1 TO E
1236  PRINT "0";
1237  NEXT J
1238  GOTO 1245
1239  E=ABS(E)
1240  PRINT "0.";
1241  FOR J=1 TO E-1
1242  PRINT "0";
1243  NEXT J
1244  PRINT "1";
1245  PRINT ")";
1246  IF Q3=0 THEN 1260
1247  PRINT " OF "D$", GIVEN "V$" AND "H$
1250  PRINT 
1260  F=1
1270  GOSUB 3000
1280  GOTO 9998
2000  FOR I=Q4 TO N
2010  IF X[I,K9+2]=0 THEN 2050
2020  M1=M2=X[I,Q]
2040  GOTO 2060
2050  NEXT I
2060  FOR I1=I+1 TO N
2070  IF X[I1,K9+2]=0 THEN 2120
2080  IF M1 <= X[I1,Q] THEN 2100
2090  M1=X[I1,Q]
2100  IF M2 >= X[I1,Q] THEN 2120
2110  M2=X[I1,Q]
2120  NEXT I1
2130  PRINT "MIN. OBS. =";M1;"MAX. OBS. =";M2
2140  PRINT "MEAN =";X[N9+1,Q];"STD. DEV. =";X[N9+2,Q]
2150  PRINT "SAMPLE SIZE=";N1
2160  PRINT 
2170  GOTO Q9 OF 2180,2180,2200
2180  PRINT "* GIVE MIDPOINT OF A CENTRAL INTERVAL OF VARIABLE: ";
2190  GOTO 2210
2200  PRINT "* MIDPOINT: ";
2210  ENTER 30,Q8,M
2220  PRINT 
2230  IF Q8>0 THEN 2290
2240  PRINT 
2250  GOTO 2350
2290  GOTO Q9 OF 2300,2300,2320
2300  PRINT "* GIVE WIDTH OF EACH CLASS INTERVAL OF VARIABLE: ";
2310  GOTO 2330
2320  PRINT "* WIDTH OF INTERVAL: ";
2330  ENTER 30,Q8,W
2340  PRINT 
2342  PRINT 
2345  IF Q8>0 THEN 2390
2350  PRINT "EXECUTE 'CTAB' WITH SAME VARIABLES, WAIT FOR HELP"
2380  GOTO 9998
2390  RETURN 
3000  Z=0
3002  FOR J=1 TO 9
3004  IF C[22,J]=0 THEN 3008
3006  Z=Z+1
3008  NEXT J
3010  PRINT TAB(12+INT(3*Z));H$
3015  PRINT 
3020  PRINT TAB(3);V$;TAB(12);
3030  FOR J=1 TO 9
3040  IF C[22,J]=0 THEN 3060
3050  PRINT  USING "#,4D2X";J
3060  NEXT J
3062  IF F=1 THEN 3075
3070  PRINT " TOTAL"
3072  GOTO 3080
3075  PRINT "MARGIN"
3080  PRINT 
3090  FOR I=1 TO 21
3095  IF C[I,10]=0 THEN 3200
3100  PRINT  USING "#,7D";I
3150  PRINT TAB(12);
3160  FOR J=1 TO 10
3162  IF C[22,J]=0 THEN 3180
3164  IF F=0 THEN 3176
3166  IF C[I,J]#0 THEN 3172
3168  PRINT "   -- ";
3170  GOTO 3180
3172  PRINT  USING A$;D[I,J]
3174  GOTO 3180
3176  PRINT  USING A$;C[I,J]
3180  NEXT J
3190  PRINT 
3200  NEXT I
3205  PRINT 
3208  IF F=1 THEN 3215
3210  PRINT "   TOTAL    ";
3212  GOTO 3220
3215  PRINT "   MARGIN   ";
3220  FOR J=1 TO 10
3225  IF C[22,J]=0 THEN 3235
3226  IF F=0 THEN 3230
3227  PRINT  USING A$;D[22,J]
3228  GOTO 3235
3230  PRINT  USING A$;C[22,J]
3235  NEXT J
3240  PRINT 
3245  PRINT 
3250  RETURN 
9998  CHAIN "$IDA",150
9999  END 
