100 ! ANLCSB -- ANALYSIS OF RANK/CLASS AND SAT SCORES ! FOR CURRENT STUDENTS 120 ! ANALAGOUS TO 'ANALYS' PROGRAM IN ADM ACCT. 130 ! 17-NOV-73 J. WARDEN WABASH COLLEGE 140 DEF FNA%(X%,Y%)=VAL(MID(A$(R%),X%,Y%)) 160 PRINT"RANK AND SAT ANALYSIS - CURRENT STUDENTS" 170 DIM V%(20),M%(20),R%(12),R2(12),R3(12) 175 Q2%=0% ! ONLY ONE SEL CRIT 180 N%=2% ! 'CSB' TYPE => 2 R/B 200 N1%=510%/N% : N3%=N%*N1% : N6%=N%-1% 220 INPUT"OUTPUT TO (DEV:FILE)";D1$ 240 IF LEN(D1$)<1% THEN D1$="KB:" 260 OPEN D1$ FOR OUTPUT AS FILE 2 300 INPUT"CLASS WANTED ( FOR ALL)";Y5$ : IF LEN(Y5$)=0% THEN Y5%=0% ELSE IF LEN(Y5$)<>2% THEN 300 310 ON ERROR GO TO 330 320 Y5%=VAL(Y5$) : GO TO 760 330 PRINT"RETYPE PLEASE" : IF ERR=52% THEN RESUME 300 ELSE ON ERROR GO TO 0 760 ! MAIN ROUTINE BEGINS HERE 780 INPUT"MEDIAN VERBAL, MATH SCORES";V8%,M8% 820 ON ERROR GO TO 2060 830 IF O1% THEN 900 ELSE O1%=1% 840 INPUT"CSB FILE";F$ 860 OPEN F$ FOR INPUT AS FILE 1 880 FIELD #1%,N1%*R% AS Z$,N1% AS A$(R%) FOR R%=0% TO N6% 890 S0%=0% 900 V%(I%),M%(I%)=0% FOR I%=0% TO 20% : R%(I%)=0% FOR I%=0% TO 12% : I%,J%,T%=0% 920 ! BEGIN READING FILE 940 IF R%Y5$ THEN 940 1020 ! - - - - - - - - - - - - - - - - - - - - - 1030 ! SELECT HERE: IF MID(A$(R%),X,Y) THEN 940 1040 ! - - - - - - - - - - - - - - - - - - - - - 1060 T%=T%+1% ! GRAND TOTAL 1080 V1%=FNA%(76%,3%) 1100 IF V1%<1% THEN 1220 1120 M1%=FNA%(79%,3%) 1140 I%=I%+1% 1160 W%=V1%/50% : V%(W%)=V%(W%)+1% 1180 W%=M1%/50% : M%(W%)=M%(W%)+1% 1200 ! TALLY CLASS RANK 1220 R3%=FNA%(69%,3%) 1240 IF R3%<1% THEN 940 ! NO RANK? REJECT! 1260 R4%=FNA%(72%,4%) 1270 IF R4%=0% THEN 940 1280 W%=(10%*R3%)/R4%+1% ! DECILE 1290 IF W%<0% OR W%>12% THEN PRINT"RNK =";W%;" FOR "+LEFT(A$(R%),6%) : GO TO 1320 1300 R%(W%)=R%(W%)+1% 1320 J%=J%+1% 1340 GO TO 940 1360 R3(I)=R%(I) FOR I=0 TO 10 1380 R2(I)=R3(I)*100/J% FOR I=0 TO 10 1400 F1$=" #### #### #### ####" 1420 F3$=" \ \ #### ####" 1440 PRINT #2,SPACE$(19)+"SAT DISTRIBUTIONS" 1460 PRINT#2 1480 PRINT#2," RANGE VERBAL DISTR MATH DISTR" 1500 PRINT#2 1520 PRINT#2,USING F1$,750,800,V%(15)+V%(16),M%(15)+M%(16) 1540 PRINT#2,USING F1$,50*I,50*I+49,V%(I),M%(I) FOR I= 14 TO 5 STEP -1 1560 PRINT#2 1580 PRINT#2,USING F3$,"NO SCORE",T%-I%,T%-I% 1600 PRINT#2 1620 PRINT#2,USING F3$,"TOTAL",T%,T% 1640 PRINT#2 1660 IF V8%<1% THEN 1700 1680 PRINT#2,USING F3$,"MEDIAN",V8%,M8% 1700 PRINT#2 FOR I=1 TO 4 1720 PRINT#2," PERCENTILE IN CLASS" 1740 PRINT#2 1760 F2$=" #### #### ####.#" 1780 F4$=" \ \ ####" 1800 PRINT#2," DECILE DISTR PER CENT" 1820 PRINT#2 1840 PRINT#2,USING F2$,10*I,R%(I),R2(I) FOR I=1 TO 10 1860 PRINT#2 1880 PRINT#2,USING F4$,"NO RANK",T%-J% 1900 PRINT#2 1920 PRINT#2,USING F4$,"TOTAL",T% 1940 INPUT "ANOTHER REPORT (Y/N)";Y$ : IF ASCII(Y$)-89% THEN 2800 1960 R%=N6% 2000 Q2%=0% : S0%=0% : PRINT #2%, CHR$(12%); : GO TO 300 2060 IF ERR=11% THEN 2080 2062 IF ERR<>52% THEN 2800 2064 IF ERL=1080% OR ERL=1120% THEN PRINT"** BAD SAT SCORE FOR"; " ID# "+LEFT(A$(R%),6%) : V1%,M1%=0% : RESUME 1140 2068 IF ERL=1220% OR ERL=1260% THEN PRINT"** BAD RANK OR CLASS"; " SIZE FOR ID# ";LEFT(A$(R%),6%) : R3%,R4%=0% : RESUME 1270 2080 IF Q%=0% THEN RESUME 1360 2800 PRINT #2%,CHR$(26%) : CLOSE 1%,2% 2840 END