1 ! LOADS -- COMPUTES FACULTY LOADS 2 ! TO USE: FIRST RUN "COUNT2" ON THE CURRENT SUBJECT FILE; IT WILL COUNT STUDENTS IN COURSES AND PUT THE 3 ! POP OF EACH COURSE INTO BYTES 100-101 OF THAT COURSE RECORD. 4 ! NEXT SORT THE SUBJECT FILE ON FIELD 20.6 TO PLACE IT IN FACULTY ORDER; COPY TO AN OUTPUT FILE. 5 ! NOW RUN THIS PROGRAM, OUTPUTTING TO LP: - ! YOU MAY REQUEST AS MANY COPIES AS YOU LIKE. 6 ! 19-OCT 74 J. WARDEN WABASH COLLEGE 15 H3$=" "+DATE$(0%)+" AT "+TIME$(0) 20 PRINT"FACULTY LOADS FROM SUBJECT FILE" 30 PRINT"SEMESTER (EX: FALL 1974)"; : INPUT LINE H0$ 32 H0$=LEFT(H0$,LEN(H0$)-2%) 35 H$=" WABASH COLLEGE FACULTY TEACHING LOADS ** "+H0$ 50 W$=" \ \ \ \ ###.# #####.#" 51 W2$=" + ###" 52 V$=" FACULTY DEPT(S) COURSE LOAD CONTACT" +" NO. COURSES" 54 U$=" MEMBER (CREDITS) (STU-CR)" +" W/NO CREDIT" 100 DIM L$(150)=16%,L(150),L2(150) 101 DIM D0$(150),P(150) 110 L%=0% ! NO FACULTY 115 DEF FNA$(X%,Y%)=MID(A$(A%),X%,Y%) 140 N5%=1% : GOSUB 4000 180 ON ERROR GO TO 300 200 INPUT"INPUT FILE (DEV:FILE)";F1$ 220 INPUT"OUTPUT FILE (DEV:FILE)";F2$ 240 OPEN F1$ FOR INPUT AS FILE 1% 250 FIELD #1%,N1%*A% AS Z$,N1% AS A$(A%) FOR A%=0% TO N6% 260 OPEN F2$ FOR OUTPUT AS FILE 2% 280 B%=0% 290 GO TO 390 300 IF ERR<>5% THEN ON ERROR GO TO 0 340 PRINT CHR$(7%)+"** CAN'T FIND "+F1$+" **" : RESUME 360 360 INPUT"INPUT FILE (DEV:FILE)";F1$ ! TRY FOR INPUT FILE AGAIN 380 GO TO 240 390 ON ERROR GO TO 900 400 IF A%11% THEN ON ERROR GO TO 0 1000 ! OUTPUT PHASE 1020 L5,S5=0. : L6=L% ! COMPUTE MEAN,SD 1022 FOR I%=1% TO L% 1024 L5=L5+L(I%) : S5=S5+L(I%)^2 1025 P5=P5+P(I%) : P6=P6+P(I%)^2 1026 NEXT I% 1030 L5=L5/L6 : S5=SQR(S5/L6-L5^2) 1040 P5=P5/L6 : P6=SQR(P6/L6-P5^2) 1050 GOSUB 1100 : GO TO 1110 1100 %,H$ : % : %,H3$ : % : %,V$ : %,U$ : % 1105 RETURN 1110 L9%=L%/2%+8% ! PAGE HERE 1120 FOR I%=1% TO L% 1125 IF I%=L9% THEN PRINT #2%,CHR$(12%); : H$=H$+" ** PAGE 2" : GOSUB 1100 1140 PRINT #2%, USING W$,L$(I%),D0$(I%),L(I%),P(I%); 1145 IF L2(I%)>0. THEN PRINT #2%, USING W2$,L2(I%) ELSE PRINT #2% 1160 NEXT I% 1162 PRINT #2% 1164 PRINT #2%,USING W$,"MEAN LOAD","",L5,P5 1166 PRINT #2%,USING W$,"STD DEVIATION","",S5,P6 1180 INPUT"ANOTHER COPY (Y/N)";Y$ 1190 IF ASCII(Y$)<>89% THEN 1300 1200 %, CHR$(12%); : H$=LEFT(H$,LEN(H$)-12%) : GO TO 1000 1300 CLOSE 1%,2% 1400 GO TO 9999 2000 ! FILE FAC MEMBER 2010 T$=FNA$(20%,16%) 2015 T=VAL(FNA$(19%,1%))/2. 2017 IF LEFT(T$,2%)<>" " THEN 2020 2018 IF T>0. THEN T$="("+D$+" STAFF)" ELSE RETURN 2020 FOR I%=1% TO L% 2030 IF T$=L$(I%) THEN 2050 2035 NEXT I% 2040 L%=L%+1% : L$(L%)=T$ 2045 I%=L% 2050 IF T>0. THEN L(I%)=L(I%)+T ELSE L2(I%)=L2(I%)+1. 2055 P=CVT$%(FNA$(100%,2%)) : P(I%)=P(I%)+P*T 2060 IF D0$(I%)="" THEN D0$(I%)=D$ ELSE IF INSTR(1%,D0$(I%),D$)=0% THEN D0$(I%)=D0$(I%)+"/"+D$ 2070 RETURN 3900 ! === FILE ATTRIBUTES LOOKUP SUBROUTINE === 4000 DIM V2$(50),V2%(2,50) 4020 ON ERROR GO TO 4320 4030 F$="SUB" 4040 OPEN V1$+"$ATRIB" FOR INPUT AS FILE 1% 4060 FIELD #1%, 255%*A% AS Z$, 255% AS A$(A%) FOR A%=0% TO 1% 4080 IF A%<1% THEN A%=A%+1% ELSE A%=0% : GET #1% 4100 IF LEFT(A$(A%),3%)="\\\" THEN PRINT"NO SUCH FILE TYPE" : GO TO 9999 4120 IF LEFT(A$(A%),3%)<>F$ THEN 4080 4140 V2%(2%,0%),N%=VAL(MID(A$(A%),4%,2%)) : N9%=VAL(MID(A$(A%),6%,1%))*2% 4160 N1%=510%/N% : N2%=N1%-8% : N3%=N%*N1% : N6%=N%-1% 4180 FOR V%=1% TO 50% 4200 V2$(V%)=MID(A$(A%),42%+(V%-1%)*4%,2%) : IF V2$(V%)=" " THEN 4280 4220 V5%=CVT$%(MID(A$(A%),44%+(V%-1%)*4%,2%)) 4240 V2%(1%,V%)=ASCII(CHR$(V5%)) : V2%(2%,V%)=ASCII(CHR$(SWAP%(V5%))) 4260 NEXT V% 4280 V2%(1%,0%)=V%-1% : IF N5% THEN 4300 ELSE PRINT"CODES: "; : PRINT V2$(I%)+" "; FOR I%=1% TO V%-1% : PRINT 4300 CLOSE 1% : ON ERROR GO TO 0 : RETURN 4320 IF ERR<>5% AND ERR<>21% THEN 4380 ELSE RESUME 4340 4340 IF V1$="" THEN V1$="DK1:" : GO TO 4040 4380 PRINT"THE FILE '$ATRIB' HAS BEEN DELETED;" : PRINT"IT MUST BE REPLACED TO PROCEED." 9999 END