1000  COM T$[30],B,B$[42],M,P[6],C[3],D$[9],N,T[7,141]
1001  COM C$[6],O$[6],K,W[6],F,N$[9]
5000  REM
5010  DIM A[7],D[7],E[140]
5020  REM
5030  DEF FNA()=SQR((D[]-A[]*A[]/C[3])/(C[3]-1))
5050  REM
5052  MAT E=ZER
5055  GOSUB 9610
5060  IF K<8 THEN 5075
5065  CHAIN "$GPACC"
5070  REM
5075  PRINT '10"-"'10'10,T$;TAB(50);D$
5100  PRINT '10;TAB(7);"S.N.","  ";
5105  GOSUB 9720
5110  LET K1=11+K*(14-B)
5115  IF K<7 THEN 5125
5120  LET K1=25+B*(13-B)
5125  PRINT TAB(K1)"----"
5130  PRINT 
5160  MAT A=ZER
5170  MAT D=ZER
5190  LET I1=0
5200  LET L=7
5210  FOR I=1 TO C[2]
5220  IF T[1,I]=-1 THEN 5520
5221  LET X=-.5
5223  FOR I9=1 TO C[2]
5224  IF T[1,I9]=-1 THEN 5230
5225  IF T[K,I9] <= X OR E[I9]=1 THEN 5230
5226  LET X=T[K,I9]
5228  LET I2=I9
5230  NEXT I9
5232  LET I1=I1+1
5233  PRINT I1;I2+C[1],
5240  FOR J=1 TO B
5250  LET Z=T[J,I2]
5260  LET A[J]=A[J]+Z
5270  LET D[J]=D[J]+Z*Z
5280  GOSUB 9910
5290  NEXT J
5300  LET Z=T[7,I2]
5310  LET A[7]=A[7]+Z
5320  LET D[7]=D[7]+Z*Z
5330  GOSUB 9920
5340  PRINT 
5345  LET E[I2]=1
5350  LET L=L+1
5370  IF L<57 OR C[3]<I1+4 THEN 5520
5400  PRINT '10'10'10'10'10'10'10'10'10"-"'10'10'10,T$,"     CONT"
5470  PRINT '10;TAB(7);"S.N.","  ";
5480  GOSUB 9720
5490  PRINT 
5500  LET L=6
5502  LET L=7
5520  NEXT I
5530  PRINT 
5540  PRINT "POSSIBLE",
5550  FOR J=1 TO B
5560  LET Z=T[J,N]
5570  GOSUB 9910
5580  NEXT J
5590  PRINT 
5600  PRINT "AVERAGE",
5610  FOR J=1 TO B
5620  LET Z=A[J]/C[3]
5630  GOSUB 9920
5640  NEXT J
5650  LET Z=A[7]/C[3]
5660  GOSUB 9920
5670  PRINT 
5680  PRINT "DEVIATION",
5690  FOR J=1 TO B
5700  LET Z=FNA(J)
5710  GOSUB 9920
5720  NEXT J
5730  LET Z=FNA(7)
5740  GOSUB 9920
5745  PRINT 
5750  FOR I2=1 TO 62-L
5760  PRINT '10;
5770  NEXT I2
5780  PRINT "-"
5800  GOTO 5050
9600  REM
9606  DIM K$[6]
9607  REM
9610  PRINT 
9611  PRINT "   KEY ";
9612  INPUT K$[1,6]
9613  PRINT 
9614  IF K$="HELP  " THEN 9625
9615  FOR K=1 TO B
9616  IF K$=B$[6*K-5,6*K] THEN 9640
9617  NEXT K
9620  LET K=7
9621  IF K$="SCORE " THEN 9640
9622  LET K=8
9623  IF K$="RETURN" THEN 9640
9624  PRINT "INVALID KEY,",
9625  PRINT "POSSIBLE KEYS ARE:"
9626  PRINT "  HELP";
9627  GOSUB 9710
9628  FOR Z1=1 TO 8-B
9629  PRINT " ";
9630  NEXT Z1
9631  PRINT "SCORE ";
9632  FOR Z1=1 TO 8-B
9633  PRINT " ";
9634  NEXT Z1
9635  PRINT "RETURN"
9636  PRINT 
9637  GOTO 9610
9638  REM
9640  RETURN 
9700  REM
9710  LET Z9=0
9711  GOTO 9725
9717  REM
9720  LET Z9=1
9725  FOR Z1=1 TO B
9726  FOR Z2=1 TO 8-B
9727  PRINT " ";
9728  NEXT Z2
9729  PRINT B$[6*Z1-5,6*Z1];
9730  NEXT Z1
9731  IF Z9=0 THEN 9740
9732  FOR Z2=1 TO 8-B
9733  PRINT " ";
9734  NEXT Z2
9735  PRINT "SCORE"
9740  RETURN 
9900  REM
9905  DIM Z$[10]
9910  LET Z9=INT(Z+.5)
9911  LET Z7=0
9912  GOTO 9926
9920  LET Z9=INT(ABS(Z)*10+.5)/10
9921  LET Z7=-2
9926  LET Z$="0123456789"
9928  LET Z1=1
9929  IF Z9<10 THEN 9940
9930  LET Z1=2
9931  IF Z9<100 THEN 9940
9932  LET Z1=3
9933  IF Z9<1000 THEN 9940
9934  LET Z1=4
9940  FOR Z2=1 TO 14-B+Z7-Z1
9941  PRINT " ";
9942  NEXT Z2
9950  FOR Z2=Z1-1 TO 0 STEP -1
9951  LET Z4=10^Z2
9952  LET Z3=INT(Z9/Z4)+1
9953  PRINT Z$[Z3,Z3];
9955  LET Z9=Z9-Z3*Z4+Z4
9956  NEXT Z2
9960  IF Z7=0 THEN 9970
9961  PRINT ".";
9962  LET Z3=INT(Z9*10+.5)+1
9963  PRINT Z$[Z3,Z3];
9970  RETURN 
9999  END 
