File MATRIX.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

100 DIM K(5,20),A(120,22),K$(9,24),H$(72),F$(20,1),D$(8),Z$(1)
130 FILE#3:"DTA1:MSSHI.BA"
135 INPUT#3:D$,X
140 INPUT#3:F,A,X,X
150 FOR I=1 TO F
160 INPUT#3:F$(I)
170 NEXTI\INPUT#3:X
180 FOR I=0 TO 5\FOR J=1 TO F
200 INPUT#3:K(I,J)\IF END #3 THEN 240
210 NEXT J\INPUT#3:X,X\NEXT I
240 CLOSE#3
243 Z$=STR$(A)
245 FILE#1:"DTA1:KARTEN."&Z$&Z$
250 FOR I=1 TO 12\INPUT#1:H$\NEXT I
280 FOR I=0 TO 9
290 INPUT#1:K$(I)\IF END#1 THEN 320
300 NEXT I
310 GOTO 330
320 S1=1
325 Z=Z-1
330 Z=Z+I+1
340 FOR J=0 TO I-S1
350 IF A=VAL(SEG$(K$(J),1,1)) THEN 370
360 PRINT"SCHUELER NR. ";SEG$(K$(J),1,4);" WIRD IGNORIERT!"
365 Z=Z-1
370 N=VAL(SEG$(K$(J),2,4))
380 A(N,0)=N
390 FOR J1=1 TO F\A(N,J1)=0\NEXT J1
400 FOR L=1 TO F
410 H$=SEG$(K$(J),L+4,L+4)
420 IF H$<>" " THEN 440
430 A(N,L)=0 \GOTO 490
440 FOR M=0 TO 9
450 IF ASC(H$)<>1+3*M THEN 470
460 A(N,L)=-M-1\GOTO 490
470 NEXT M
480 A(N,L)=VAL(H$)
490 NEXT L
500 NEXT J
510 IF S1<>1 THEN 280
520 CLOSE#1
530 FOR I=1 TO 120\IF A(I,0)=0 THEN 560\M=I
560 NEXT I
570 GOSUB 760
575 FILEV#2:"SYS:MSSMAT."&Z$&Z$
580 PRINT#2:Z,M,F
590 FOR I=1 TO M\FOR J=0 TO F+1\PRINT#2:A(I,J);\NEXT J
630 PRINT#2:A(I,F+2)\NEXT I\CLOSE#2
660 PRINT\PRINT\PRINT
665 PRINT "UEBERSICHT  ";D$
670 PRINT"SCHUELERZAHL";Z
680 PRINT"GROESSTE SCHUELERNUMMER";M
685 PRINT 
690 PRINT"SCHNR.","SOLLSTD","ISTSTD"
700 FOR I=1 TO M
710 IF A(I,0)=0 THEN 730
720 PRINT A(I,0)+A*1000,A(I,F+1),A(I,F+2)
730 NEXT I
735 GOSUB 2000
740 CHAIN "SYS:MFREQU.BA"
750 STOP
760 REM SOLL & IST
770 FOR I=1 TO M
780 H2=0\H3=0\S2=0
790 FOR J=1 TO F
800 H1=A(I,J)
810 H5=ABS(H1)
820 H4=SGN(H5)
830 GOSUB 950
840 IF ABS(A(I,J))>4 THEN 880
850 H2=H2+H4*K(1,J)
860 H3=H3+H4*K(2,J)
870 GOTO 910
880 H2=H2+H4*K(4,J)
890 H3=H3+H4*K(5,J)
900 A(I,J)=H1
910 NEXT J
920 A(I,F+1)=H2\A(I,F+2)=H3
930 NEXT I
940 RETURN
950 REM KONTROLLE
960 IF H5<=K(0,J) THEN 1060
970 IF H5>4 THEN 1040
980 IF S2>0 THEN 1000
990 PRINT \PRINT "SCHUELER ";I+A*1000;TAB(30);D$
1000 PRINT"KURS ";F$(J);STR$(H5);" EXISTIERT NICHT"
1010 H4=0\H1=0
1020 S2=1
1030 GOTO 1060
1040 IF H5<=4+K(3,J) THEN 1060
1050 GOTO 980
1060 RETURN
2000 REM KURSFREQENZENUEBERSICHT
2010 Z1=0\Z2=0\PRINT\PRINT
2012 PRINT "KURSBELEGUNGSUEBERSICHT ";D$\PRINT
2013 PRINT "KURS","SCHUELERZ."
2015 FORI1=1TOF\FORI3=0TO3STEP3\FORI2=1+4*I3/3TOK(I3,I1)+4*I3/3
2040 FORI0=1TOM\IFABS(A(I0,I1))<>I2THEN2080\Z1=Z1+1\IFA(I0,I1)>0THEN2080
2070 Z2=Z2+1
2080 NEXT I0
2090 PRINT F$(I1)&STR$(I2),Z1,"*";Z2
2105 Z1=0\Z2=0\NEXT I2\NEXT I3\NEXT I1\RETURN
3000 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search