10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         WKSHT:  GENERATES MATH WORKSHEETS
13  REM
14  REM         36133 (A801) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  **************************************
17  REM
100  DIM A[25]
110  PRINT "TYPE 1 FOR ADDITION, 2 FOR SUBTRACTION, 3 FOR"
120  PRINT "MULTIPLICATION AND 4 FOR DIVISION."
130  INPUT T
140  PRINT "TYPE A 1, 2, OR 3 FOR THE NUMBER OF DIGITS DESIRED"
150  PRINT "IN EACH NUMBER."
160  PRINT "HOW MANY DIGITS DO YOU WANT PER NUMBER? 1,2, OR 3";
170  INPUT D
180  PRINT "HOW MANY PROBLEMS DO YOU WANT ON THIS WORKSHEET?"
190  PRINT "PLEASE NO MORE THAN 25!"
200  INPUT P
210  PRINT "TYPE A 1 IF YOU WANT THE ANSWERS PRINTED AT THE"
220  PRINT "BOTTOM OF THE WORKSHEET OR A 2 IF ANSWERS ARE TO BE"
230  PRINT "PRINTED SEPARATELY.  1 OR 2";
240  INPUT W
250  PRINT 
260  PRINT 
270  PRINT 
280  PRINT "MATH PROBLEMS"
290  PRINT 
300  PRINT 
310  FOR I=1 TO P
320  LET N1=INT(RND(1)*(10^D))
330  LET N2=INT(RND(1)*(10^D))
340  GOSUB T OF 390,430,500,540
350  PRINT 
360  NEXT I
370  GOSUB W OF 610,670
380  GOTO 780
390  REM ADDITION
400  LET A[I]=N1+N2
410  PRINT I,N1;" + ";N2;" =?"
420  RETURN 
430  REM SUBTRACTION
440  IF N2 <= N1 THEN 470
450  LET N2=INT(RND(1)*(10^D))
460  GOTO 440
470  LET A[I]=N1-N2
480  PRINT I,N1;" - ";N2;" =?"
490  RETURN 
500  REM MULTIPLICATION
510  LET A[I]=N1*N2
520  PRINT I,N1;"X";N2;" =?"
530  RETURN 
540  REM DIVISION
550  IF N2#0 THEN 580
560  LET N2=INT(RND(1)*(10^D))
570  GOTO 550
580  LET A[I]=N1/N2
590  PRINT I,N1;"/";N2;"= ?"
600  RETURN 
610  REM ANSWERS ON WORKSHEET
620  FOR J=1 TO 50-2*P
630  PRINT 
640  NEXT J
650  GOSUB 730
660  RETURN 
670  REM ANSWERS FOLLOWING THE WORKSHEET
680  FOR J=1 TO 62-2*P
690  PRINT 
700  NEXT J
710  GOSUB 730
720  RETURN 
730  PRINT "ANSWERS"
740  FOR I=1 TO P
750  PRINT I;A[I],
760  NEXT I
770  RETURN 
780  END 
