5  REM  HP 36807A, 6/74, ?TABLE, PART 3 OF 3
10  REM---Questionnaire Table Printing; BG, 5/73---
20  DIM A$[72],B$[72],C$[72],D$[72],F$[7]
30  DIM S[11],N[10],M[10]
40  DIM R[10,10],A[500]
50  FILES *,*,*,*,*,*,*,*,*,*
60  MAT S=ZER
70  RESTORE 9000
80  READ A$,A$,F$,D$
90  N1=S=P=0
100  IF TYP(0)=1 THEN 140
110  READ A$,B$,C$
120  N1=N1+LEN(B$)
130  GOTO 100
140  MAT A=ZER[N1]
150  PRINT "Type subgroup numbers, one per line. RETURN when done."
160  IF S<10 THEN 190
170  PRINT "That's all!  (10 mAximum)."
180  GOTO 360
190  PRINT "? ";
200  ENTER 255,Z,S[S+1]
210  PRINT 
220  IF S[S+1]=0 THEN 360
230  S=S+1
240  ASSIGN F$,S,Z
250  IF  END #S THEN 320
260  READ #S;T,N
270  IF T=S[S] THEN 300
280  MAT  READ #S;A
290  GOTO 260
300  N[S]=N
310  GOTO 160
320  PRINT "Subgroup is not on file."
330  S[S]=0
340  S=S-1
350  GOTO 160
360  PRINT "Set at top of page and RETURN";
370  ENTER 255,Z,A$
380  IF Z<0 THEN 370
390  PRINT LIN(3)"Subgroup Tabulation: "D$
400  GOSUB 1430
410  PRINT LIN(1)"   "D$
420  PRINT LIN(2)"SG#  # in SG  Subgroup Name"
430  PRINT "---  -------  -------------"
440  L=11
450  FOR I=1 TO S
460  RESTORE 9500
470  FOR J=1 TO S[I]-1
480  READ A$
490  IF TYP(0)#1 THEN 520
500  READ X
510  GOTO 490
520  NEXT J
530  READ A$
540  PRINT  USING 550;S[I],N[I]
550  IMAGE#,2d,8d,4x
560  PRINT A$,LIN(1)
570  NEXT I
580  PRINT LIN(2)
590  L=L+2*S+3
600  PRINT "Note:  The subgroup numbers are listed across the top of each"
610  PRINT "   page.  The possible responses to each question are printed"
620  PRINT "   on the left side of the page.  For each response and each"
630  PRINT "   subgroup is given the number of responses, the % of ALL"
640  PRINT "   respondants (enclosed in parentheses), and the % of all"
650  PRINT "   non-blank respondants (enclosed in brackets)."
660  L=L+6
670  RESTORE 9020
680  READ A$,B$,C$
690  GOSUB 1230
700  B=LEN(B$)
710  PRINT  USING 720;A$
720  IMAGE#,"Q$: ",7a,4x
730  PRINT C$
740  FOR I=1 TO LEN(C$)+15
750  PRINT "-";
760  NEXT I
770  PRINT LIN(2);
780  GOSUB 1310
790  L=L+6
800  MAT M=ZER
810  FOR I=1 TO S
820  FOR J=1 TO B
830  READ #I;R[I,J]
840  IF J=B THEN 860
850  M[I]=M[I]+R[I,J]
860  NEXT J
870  NEXT I
880  FOR I=1 TO B
890  PRINT  USING 900;B$[I,I]
900  IMAGE#,5xa,":"
910  FOR J=1 TO S
920  PRINT  USING "#,6dx";R[J,I]
930  NEXT J
940  PRINT LIN(1),SPA(9);
950  FOR J=1 TO S
960  IF N[J]=0 THEN 990
970  X=R[J,I]/N[J]*100
980  GOTO 1000
990  X=0
1000  PRINT  USING 1010;X
1010  IMAGE#,"(",3d,")  "
1020  NEXT J
1030  L=L+3
1040  PRINT 
1050  IF I=B THEN 1160
1060  PRINT SPA(9);
1070  FOR J=1 TO S
1080  IF M[J]=0 THEN 1110
1090  X=R[J,I]/M[J]*100
1100  GOTO 1120
1110  X=0
1120  PRINT  USING 1130;X
1130  IMAGE#,"[",3d,"]  "
1140  NEXT J
1150  L=L+1
1160  PRINT LIN(2);
1170  IF L<57 THEN 1190
1180  GOSUB 1230
1190  NEXT I
1200  IF TYP(0)=2 THEN 680
1210  GOSUB 1230
1220  STOP 
1230  REM---Page---
1240  PRINT LIN(L-63);
1250  P=P+1
1260  PRINT  USING 1270;P
1270  IMAGE32x,"- p.",3d," -"
1280  PRINT LIN(-6);
1290  L=5
1300  RETURN 
1310  REM---print SG heading---
1320  PRINT SPA(6);
1330  FOR P1=1 TO S
1340  PRINT  USING "#,7d";S[P1]
1350  NEXT P1
1360  PRINT LIN(1),SPA(7);
1370  FOR P1=1 TO S
1380  PRINT  USING 1390
1390  IMAGE#,"  -----"
1400  NEXT P1
1410  PRINT LIN(2);
1420  RETURN 
1430  REM---Returns date in D$ (13 chars.). DIM D$(72) in main program---
1440  D1=(INT(TIM(3)/4)=TIM(3)/4)
1450  D2=TIM(2)+(TIM(2)>(59+D1))*(2-D1)
1460  D1=INT((D2+91)/30.55)-2
1470  D2=D2+91-INT((D1+2)*30.55)
1480  D$="       , 19  Jan.Feb.Mar.Apr.May JuneJulyAug.Sep.Oct.Nov.Dec.0123456789"
1490  D$[1,4]=D$[4*D1+10]
1500  D$[6,6]=D$[6+(56+INT(D2/10))*(D2>9)]
1510  D$[7,7]=D$[62+D2-INT(D2/10)*10]
1520  D$[12,12]=D$[62+INT(TIM(3)/10)]
1530  D$[13,13]=D$[62+TIM(3)-INT(TIM(3)/10)*10]
1540  D$=D$[1,13]
1550  RETURN 
1560  END 
