1 ! CLFREQ -- TIME SLOT OCCUPATION FREQUENCIES ! FOR CLASSES. TWO FILES ARE REQUIRED: 2 ! (1) SUBJECT FILE (SEQ 4 R/B) ! (2) CLASS LIST FILE (SEQ 4 R/B) 3 ! REVISED 13-JAN-73 J. WARDEN 100 OPEN"IDFIL.TMP" FOR OUTPUT AS FILE 5% 180 PRINT"TIME SLOT FREQUENCIES" 200 ON ERROR GO TO 1180 220 R1$=CHR$(13) :R2$=CHR$(10) 240 F7$=" \ \ ##### #####"+CHR$(10%) 260 F6$=" TIME OCC FREE" 280 DIM N$(15),V%(15),C%(15),C2%(15),C3%(15) 320 READ X% : READ V%(I%) FOR I%=1% TO 12% 340 DATA 12,0 360 DATA 800,900,1020,1120,110,210,310,830,1045,240,730 370 N$(I%)=NUM$(V%(I%)) FOR I%=1% TO 12% 372 N$(0%)=" MISC" : N$(1%)=" ARR" 380 F9%=0% : F7%=0% ! INITIALIZE FLAGS 390 DIM S%(300) 400 INPUT"SUBJECT FILE";F5$ 410 OPEN F5$ FOR INPUT AS FILE 1% : FIELD #1%, 127%*V% AS Z$, 127% AS V$(V%) FOR V%=0% TO 3% 415 I%=1% 420 IF V%<3% THEN V%=V%+1% ELSE V%=0% : GET #1% 425 IF LEFT(V$(V%),1%)="\" THEN 450 430 S%(VAL(MID(V$(V%),8%,3%)))=I% : I%=I%+1% : GO TO 420 450 S%(0%)=I%-1% 500 PRINT"CLASS LIST FILE (DEV:FILE)"; 520 INPUT F$ : OPEN F$ FOR INPUT AS FILE 3 540 FIELD #3%,127%*R% AS Z$,127% AS A$(R%) FOR R%=0% TO 3% 560 INPUT"OUTPUT TO (DEV:FILE)";Z$ 580 IF LEN(Z$)<2% THEN Z$="LP:" 600 OPEN Z$ FOR OUTPUT AS FILE 4 620 INPUT"SKIP PAST ID";Z2$ 630 PRINT : PRINT"CONFLICTS:" 640 IF LEN(Z2$)<>6% THEN 700 660 IF R%<3% THEN R%=R%+1% ELSE R%=0% : GET #3% 680 IF Z2$>LEFT(A$(R%),6%) THEN 660 700 IF R%<3% THEN R%=R%+1% ELSE R%=0% : GET #3% 720 IF LEFT(A$(R%),1%)="\" THEN 1310 740 Z2%=Z2%+1% 760 I%=0% 800 U%=(INSTR(40%,A$(R%)," ")-35%)/7% ! NO. COURSES 810 IF U%=0% THEN 700 820 H1%=0% ! TOTAL HOURS 840 C%(Y%)=0% FOR Y%=0% TO 12% 860 FOR I%=1% TO U% 880 C1$=MID(A$(R%),41%+(I%-1%)*7%,7%) 900 C%=VAL(LEFT(C1$,3)) 920 S1%=S%(C%) 930 V1%=(S1%+3%)/4% : V%=S1%-4%*V1%+3% : GET #1%, RECORD V1% 940 H$=MID(C1$,4,1) 960 D1$=MID(V$(V%),16%,3%) 980 T1$=MID(V$(V%),12%,4%) 1000 T1%=VAL(T1$) 1020 FOR Y%=1% TO 12% 1040 IF T1%=V%(Y%) THEN C%(Y%)=C%(Y%)+1% : GO TO 1100 1060 NEXT Y% 1080 C%(0)=C%(0)+1% 1100 NEXT I% 1110 FOR I%=2% TO 12% 1112 IF I%<>6% AND C%(I%)>1% THEN C%(I%)=1% : PRINT LEFT(A$(R%),6%)+" "; : PRINT #5%,LEFT(A$(R%),6%) 1114 NEXT I% 1120 C2%(I)=C2%(I)+C%(I) FOR I=0 TO 12 1140 C3%(I)=C3%(I)+1%-C%(I) FOR I=0 TO 12 1160 GO TO 700 1180 IF ERR=11% THEN 1320 1200 IF ERR=52% THEN 1240 1220 ON ERROR GO TO 0 1240 IF I%>0% THEN 1220 1260 PRINT"BAD RECORD: "+LEFT(A$(R%),40) 1280 P1$=" " 1300 RESUME 780 1310 PRINT #4%," OCCUPATION FREQUENCIES OF CLASS SLOTS"+CHR$(10%) 1320 PRINT #4,F6$+CHR$(10) 1360 PRINT #4%,USING F7$,N$(I%),C2%(I%),C3%(I%) FOR I%=0% TO 12% 1380 PRINT 1410 PRINT #5%,CHR$(26%) 1420 CLOSE 1,2,3,4,5 1440 END