1  REM  ********** HP TIME-SHARED BASIC PROGRAM LIBRARY ***************
2  REM
3  REM      CADA1P:  COMPUTER ASSISTED ARITHMETIC DRILL
4  REM
5  REM          36205   REV A    3/72   PART 3 OF 3
6  REM
7  REM ************ CONTRIBUTED PROGRAM **********************************
8  REM
9  REM
10  PRINT "THIS PROGRAM IS A CAI-DRILL IN INTEGER ARITHMETIC. TO"
20  PRINT "STOP PRACTICE BEFORE COMPLETE, HOLD CTRL KEY DOWN AND"
30  PRINT "DEPRESS THE LETTER C, THEN RETURN. A PERMANENT SUMMARY"
40  PRINT "OF THIS WORK CAN BE OBTAINED THROUGH MR. JONES."
50  FILES CADA1F
60  D=X=Y=Z=0
70  PRINT "STUDENT #";
80  INPUT S
90  PRINT "OPERATION   1=ADDITION, ETC."
100  INPUT O
110  PRINT "CORRECT PROBLEMS";
120  INPUT C
130  GOTO O OF 140,240,370,470,90
140  PRINT "LARGEST ADDEND";
150  INPUT K
160  GOSUB 570
170  PRINT A1"+"A2"=";
180  INPUT A
190  IF A1+A2=A THEN 830
200  GOSUB 680
210  INPUT A
220  IF A1+A2=A THEN 850
230  GOTO 700
240  PRINT "LARGEST MINUEND";
250  INPUT K
260  GOSUB 570
270  IF A1>A2 THEN 300
280  PRINT A2"-"A1"=";
290  GOTO 310
300  PRINT A1"-"A2"=";
310  INPUT A
320  IF ABS(A1-A2)=A THEN 830
330  GOSUB 680
340  INPUT A
350  IF ABS(A1-A2)=A THEN 850
360  GOTO 700
370  PRINT "LARGEST FACTOR";
380  INPUT K
390  GOSUB 570
400  PRINT A1"*"A2"=";
410  INPUT A
420  IF A=A1*A2 THEN 830
430  GOSUB 680
440  INPUT A
450  IF A=A1*A2 THEN 850
460  GOTO 700
470  PRINT "LARGEST DIVIDEND";
480  INPUT K
490  GOSUB 620
500  PRINT A1*A2"DIVIDED BY  "A1"=";
510  INPUT A
520  IF A=A2 THEN 830
530  GOSUB 680
540  INPUT A
550  IF A=A2 THEN 850
560  GOTO 700
570  A1=INT(K*RND(0)+1)
580  A2=INT(K*RND(0)+1)
590  GOSUB 730
600  D=D+1
610  RETURN 
620  A1=INT(K/2*RND(0)+1)
630  A2=INT(K/2*RND(0)+1)
640  IF A1*A2>K THEN 620
650  GOSUB 730
660  D=D+1
670  RETURN 
680  PRINT "YOUR ANSWER IS WRONG, TRY IT AGAIN."
690  RETURN 
700  PRINT "YOUR ANSWER IS STILL WRONG. LET'S TRY ANOTHER PROBLEM."
710  Z=Z+1
720  GOTO O OF 160,260,390,490
730  IF X=C/2 OR X-.5=C/2 THEN 770
740  IF X=C-1 THEN 800
750  IF X=C THEN 880
760  RETURN 
770  PRINT "YOU HAVE ANSWERED HALF OF YOUR PROBLEMS CORRECTLY."
780  PRINT "KEEP UP THE GOOD WORK."
790  GOTO 760
800  PRINT "YOU NEED TO GET ONE MORE PROBLEM CORRECT TO FINISH"
810  PRINT "YOUR WORK."
820  GOTO 760
830  X=X+1
840  GOTO O OF 160,260,390,490
850  Y=Y+1
860  PRINT "THAT IS BETTER. TRY THIS PROBLEM."
870  GOTO O OF 160,260,390,490
880  PRINT 
890  PRINT 
900  PRINT "THIS STUDENT HAS ATTEMPTED "D"PROOBLEMS."
910  PRINT X"WERE CORRECT ON THE FIRST TRY."
920  PRINT Y"WERE CORRECT ON THE SECOND TRY."
930  PRINT Z"WERE NOT ANSWERED CORRECTLY ON EITHER TRY."
940  PRINT 
950  PRINT 
960  REM --------------SEARCH------------------
970  IF S=0 THEN 1680
980  DIM M$[25],C$[5]
990  READ #1,S
1000  READ #1,S;T1,M$
1010  IF M$="A" THEN 1500
1020  PRINT M$" IS THE STUDENT NAME, IS THAT CORRECT";
1030  INPUT C$
1040  IF C$="YES" THEN 1060
1050  GOTO 1320
1060  REM---------------ADJUSTS RECORD--------------
1070  READ #1,S
1080  READ #1,S;T1,M$,A1,A2,A3,A4,S1,S2,S3,S4,M1,M2,M3,M4,D1,D2,D3,D4
1090  GOTO O OF 1100,1150,1200,1250
1100  A1=A1+D
1110  A2=A2+X
1120  A3=A3+Y
1130  A4=A4+Z
1140  GOTO 1290
1150  S1=S1+D
1160  S2=S2+X
1170  S3=S3+Y
1180  S4=S4+Z
1190  GOTO 1290
1200  M1=M1+D
1210  M2=M2+X
1220  M3=M3+Y
1230  M4=M4+Z
1240  GOTO 1290
1250  D1=D1+D
1260  D2=D2+X
1270  D3=D3+Y
1280  D4=D4+Z
1290  READ #1,S
1300  PRINT #1,S;T1,M$,A1,A2,A3,A4,S1,S2,S3,S4,M1,M2,M3,M4,D1,D2,D3,D4
1310  GOTO 1610
1320  PRINT "WHAT IS THE CORRECT NAME."
1330  DIM N$[25]
1340  INPUT N$
1350  FOR R=1 TO 25
1360  READ #1,R
1370  READ #1,R;T1,M$
1380  IF N$=M$ THEN 1470
1390  NEXT R
1400  FOR S=1 TO 25
1410  READ #1,S
1420  READ #1,S;T1,M$
1430  IF T1=0 THEN 1500
1440  NEXT S
1450  PRINT "THERE ARE NO EMPTY RECORDS."
1460  GOTO 1610
1470  PRINT "CORRECT STUDENT NUMBER IS "R
1480  S=R
1490  GOTO 960
1500  PRINT "NO RECORD LISTED FOR STUDENT # "S
1510  PRINT "DO YOU WISH TO OPEN A RECORD";
1520  INPUT C$
1530  IF C$="YES" THEN 1550
1540  GOTO 1610
1550  READ #1,S
1560  X1=0
1570  PRINT "STUDENT NAME";
1580  INPUT M$
1590  PRINT #1,S;S,M$,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1,X1
1600  GOTO 960
1610  PRINT 
1620  PRINT 
1630  PRINT "WHEN I FINISH TYPING YOU MAY TEAR OFF THE PAGE AND"
1640  PRINT "GIVE IT TO YOUR TEACHER."
1650  FOR N=1 TO 10
1660  PRINT 
1670  NEXT N
1680  END 
