ELEMENTARY INSTRUCTIONAL PROGRAMS - VOLUME II BY BOB HUNTSMAN, SCHOOL DISTRICT NO. 91 690 JOHN ADAMS PARKWAY IDAHO FALLS, IDAHO 83401 AUGUST 26, 1974 TABLE OF CONTENTS ----------------- ITEM PAGE ---- ---- ELEMENTARY INSTRUCTIONAL PROGRAMS - VOLUME II SPEED PROGRAMS DOCUMENTATION ......................................................... 2 SAMPLE PROBLEMS -SPEEDA- ......................................................... 3 -SPEEDS- ......................................................... 4 -SPEEDM- ......................................................... 6 -SPEEDD- ......................................................... 8 BOX PROGRAMS DOCUMENTATION ......................................................... 9 SAMPLE PROBLEMS -BOXA- ......................................................... 10 -BOXM- ......................................................... 11 -BOX- ......................................................... 12 PROGRESSIVE ADDING PROGRAMS DOCUMENTATION ......................................................... 13 SAMPLE PROBLEMS -PROGAS- ......................................................... 14 -PROGAL- ......................................................... 16 DOUBLES/10'S PROGRAM DOCUMENTATION ......................................................... 18 SAMPLE PROBLEMS ......................................................... 18 'RECORD' OPTION ......................................................... 19 LISTINGS: SPEEDA ......................................................... 20 SPEEDS ......................................................... 23 SPEEDM ......................................................... 26 SPEEDD ......................................................... 29 BOXA ......................................................... 32 BOXM ......................................................... 35 BOX ......................................................... 38 PROGAS ......................................................... 41 PROGAL ......................................................... 44 DBL10 ......................................................... 47 -1- PAGE 2 THE SPEED PROGRAMS WERE DESIGNED TO DRILL THE USER ON ADDITION, SUBTRACTION, MULTIPLICATION, AND DIVISION (IN SEPARATE PROGRAMS). THE PROBLEMS CHOSEN BY THIS PROGRAM ARE VERY BASIC -- BUT IF THE USER DOES WELL, THE DIFFICULTY OF THE PROBLEMS WILL INCREASE. THE DIFFICULTIES ARE: LEVEL DIFFICULTY ----- ---------- EASY SPEEDA SUMS ARE LESS THAN 11. SPEEDS SUBTRAHEND AND REMAINDER ARE LESS THAN 11. SPEEDM FACTORS ARE BETWEEN 1-8 INCLUSIVE. SPEEDD DIVIDEND AND DIVISOR ARE BETWEEN 1-8 INCLUSIVE. MEDIUM SPEEDA SUMS ARE LESS THAN 16. SPEEDS SUBTRAHEND AND REMAINDER ARE LESS THAN 16. SPEEDM FACTORS ARE BETWEEN 4-10 INCLUSIVE. SPEEDD DIVIDEND AND DIVISOR ARE BETWEEN 4-10 INCLUSIVE. HARD SPEEDA SUMS ARE LESS THAN 21. SPEEDS SUBTRAHEND AND REMAINDER ARE LESS THAN 21. SPEEDM FACTORS ARE BETWEEN 4-12 INCLUSIVE. SPEEDD DIVIDEND AND QUOTIENT ARE BETWEEN 4-12 INCLUSIVE. THE PROGRAM INITIALLY GIVES JUST EASY PROBLEMS, THEN, AFTER THE USER SUCCESSFULLY COMPLETES 4 OUT OF THE FIRST 6 EASY ONES -- OR 8 EASY ONES -- THE PROGRAM WILL THEN GIVE MEDIUM PROBLEMS, AND FINALLY HARDER ONES. EACH SPEED PROGRAM GIVES THE USER TWO MINUTES TO DO AS MANY PROBLEMS AS HE CAN. ONLY CORRECT RESPONSES ARE SCORED. AFTER TIME RUNS OUT, THE COMPUTER WILL TELL THE USER HOW WELL HE DID. THE POSSIBLE FINAL MESSAGES A USER MAY RECEIVE ARE: LESS THAN 7 CORRECT: YOU DEFINITELY NEED MORE PRACTICE! 7 OR 8 CORRECT: YOU DID PRETTY WELL -- BUT MORE PRACTICE WOULDN'T HURT!! 9 OR 10 CORRECT: YOU DID REALLY WELL! 11 OR MORE CORRECT: GREAT!! CONGRATULATIONS!! (THE SPEED PROGRAMS HAVE THE 'RECORD' OPTION.) DOCUMENTATION OF THE SPEED PROGRAMS WAS COMPLETED JULY 2, 1974 BY BOB HUNTSMAN. -2- PAGE 3 RUNNH GRADE? 3 LINDEN PARK THE CURRENT RECORD FOR GRADE 3 IS -------------> 10 . . . . . .BY JEFF STODDARD ON 08-JUL-74!!! SPEED ADDITION GAME! NAME PLEASE? DOUG DOUG -- YOU HAVE TWO MINUTES. DO AS MANY PROBLEMS AS YOU CAN!! (120 SECONDS LEFT) 8 + 1 = 9 <-----CORRECT!! (111 SECONDS LEFT) 3 + 7 = 10 <-----CORRECT!! (90 SECONDS LEFT) 0 + 8 = 8 <-----CORRECT!! (81 SECONDS LEFT) 1 + 1 = 2 <-----CORRECT!! ************* GOOD, DOUG!! NOW SOME HARDER ONES!! (73 SECONDS LEFT) 5 + 5 = 10 <-----CORRECT!! (52 SECONDS LEFT) 8 + 5 = 13 <-----CORRECT!! (42 SECONDS LEFT) 4 + 4 = 8 <-----CORRECT!! (32 SECONDS LEFT) 12 + 2 = 4 <-----WRONG -- TRY AGAIN!! (23 SECONDS LEFT) 12 + 2 = 4 <-----WRONG!! THE CORRECT ANSWER IS -----> 14!! (13 SECONDS LEFT) 5 + 11 = 16 <-----CORRECT!! TIME IS UP!!!!! DOUG, YOU GOT 8 PROBLEMS CORRECT IN TWO MINUTES. YOU DID PRETTY WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!! (DOUG--YOU MISSED THE RECORD BY 2. . .) READY -3- PAGE 4 RUN SPEEDS GRADE? 3 LINDEN PARK THE CURRENT RECORD FOR GRADE 3 IS -------------> 13 . . . . . .BY TRICIA WECKER ON 11-JUL-74!!! SPEED SUBTRACTION GAME! NAME PLEASE? MARILYN MARILYN -- YOU HAVE TWO MINUTES. DO AS MANY PROBLEMS AS YOU CAN!! (120 SECONDS LEFT) 9 - 1 = 8 <-----CORRECT!! (114 SECONDS LEFT) 2 - 2 = 0 <-----CORRECT!! (108 SECONDS LEFT) 7 - 7 = 4 <-----WRONG -- TRY AGAIN!! (104 SECONDS LEFT) 7 - 7 = 2 <-----WRONG!! THE CORRECT ANSWER IS -----> 0!! (98 SECONDS LEFT) 6 - 3 = 3 <-----CORRECT!! (92 SECONDS LEFT) 6 - 5 = 1 <-----CORRECT!! ************* GOOD, MARILYN!! NOW SOME HARDER ONES!! (86 SECONDS LEFT) 9 - 6 = 3 <-----CORRECT!! (80 SECONDS LEFT) 6 - 3 = 2 <-----WRONG -- TRY AGAIN!! (73 SECONDS LEFT) 6 - 3 = 3 <-----CORRECT!! (71 SECONDS LEFT) 7 - 2 = 5 <-----CORRECT!! (64 SECONDS LEFT) 10 - 9 = 1 <-----CORRECT!! (58 SECONDS LEFT) 5 - 4 = 1 <-----CORRECT!! ********** VERY GOOD, MARILYN! FINALLY, SOME REALLY HARD ONES!! (52 SECONDS LEFT) 10 - 6 = 4 <-----CORRECT!! (45 SECONDS LEFT) 16 - 12 = 4 <-----CORRECT!! (38 SECONDS LEFT) 6 - 3 = 3 <-----CORRECT!! (32 SECONDS LEFT) 7 - 6 = 1 <-----CORRECT!! (26 SECONDS LEFT) 16 - 2 = 14 <-----CORRECT!! (20 SECONDS LEFT) 14 - 7 = 7 <-----CORRECT!! (13 SECONDS LEFT) 19 - 11 = 8 <-----CORRECT!! (6 SECONDS LEFT) 10 - 6 = 4 <-----CORRECT!! TIME IS UP!!!!! MARILYN, YOU GOT 17 PROBLEMS CORRECT IN TWO MINUTES. YOU DID GREAT -- CONGRATULATIONS!!!!! -4- PAGE 5 TYPE IN 'YES' IF YOU REALLY ARE IN GRADE 3:YES CONGRATULATIONS, MARILYN!!! A NEW RECORD!! ENTER FULL NAME--->MARILYN MANNING READY -5- PAGE 6 RUN SPEEDM GRADE? 4 LINDEN PARK THE CURRENT RECORD FOR GRADE 4 IS -------------> 13 . . . . . .BY DAVID CECIL ON 11-JUL-74!!! SPEED MULTIPLICATION GAME! NAME PLEASE? MARILYN MARILYN, YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!! (120 SECONDS LEFT) 1 X 3 = 3 <-----CORRECT!! (116 SECONDS LEFT) 1 X 5 = 5 <-----CORRECT!! (110 SECONDS LEFT) 1 X 1 = 1 <-----CORRECT!! (104 SECONDS LEFT) 2 X 4 = 8 <-----CORRECT!! ************* MARILYN -- HERE ARE SOME HARDER PROBLEMS!! (98 SECONDS LEFT) 7 X 9 = 8 <-----WRONG -- TRY AGAIN!! (91 SECONDS LEFT) 7 X 9 = 5 <-----WRONG!! THE CORRECT ANSWER IS -----> 63!! (87 SECONDS LEFT) 9 X 5 = 45 <-----CORRECT!! (79 SECONDS LEFT) 6 X 7 = 42 <-----CORRECT!! (71 SECONDS LEFT) 5 X 9 = 45 <-----CORRECT!! (63 SECONDS LEFT) 4 X 4 = 16 <-----CORRECT!! (56 SECONDS LEFT) 9 X 9 = 7 <-----WRONG -- TRY AGAIN!! (49 SECONDS LEFT) 9 X 9 = 81 <-----CORRECT!! ********** VERY GOOD MARILYN!! TRY SOME REALLY HARD ONES!! (45 SECONDS LEFT) 10 X 10 = 100<-----CORRECT!! (39 SECONDS LEFT) 12 X 12 = 144<-----CORRECT!! (31 SECONDS LEFT) 7 X 11 = 77 <-----CORRECT!! (25 SECONDS LEFT) 8 X 9 = 72 <-----CORRECT!! (18 SECONDS LEFT) 12 X 11 = 132<-----CORRECT!! (11 SECONDS LEFT) 10 X 9 = 90 <-----CORRECT!! (4 SECONDS LEFT) 10 X 12 = 120<-----CORRECT!! TIME IS UP!!!!! MARILYN, YOU GOT 16 PROBLEMS CORRECT IN TWO MINUTES. YOU DID GREAT -- CONGRATULATIONS!!!!! -6- PAGE 7 TYPE IN 'YES' IF YOU REALLY ARE IN GRADE 4:YES CONGRATULATIONS, MARILYN!!! A NEW RECORD!! ENTER FULL NAME--->MARILYN MANNING READY -7- PAGE 8 RUNNH GRADE? 5 LINDEN PARK THE CURRENT RECORD FOR GRADE 5 IS -------------> 11 . . . . . .BY PAUL LEEPER ON 08-JUL-74!!! SPEED DIVISION GAME! NAME PLEASE? MICHELLE MICHELLE, YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!! (120 SECONDS LEFT) 12 DIVIDED BY 4 = 3 <-----CORRECT!! (111 SECONDS LEFT) 6 DIVIDED BY 2 = 1 <-----WRONG -- TRY AGAIN!! (105 SECONDS LEFT) 6 DIVIDED BY 2 = 2 <-----WRONG!! THE CORRECT ANSWER IS -----> 3!! (96 SECONDS LEFT) 12 DIVIDED BY 3 = 4 <-----CORRECT!! (85 SECONDS LEFT) 2 DIVIDED BY 1 = 2 <-----CORRECT!! (75 SECONDS LEFT) 18 DIVIDED BY 6 = 2 <-----WRONG -- TRY AGAIN!! (64 SECONDS LEFT) 18 DIVIDED BY 6 = 3 <-----CORRECT!! ************* MICHELLE -- HERE ARE SOME HARDER PROBLEMS!! (56 SECONDS LEFT) 40 DIVIDED BY 8 = 5 <-----CORRECT!! (45 SECONDS LEFT) 72 DIVIDED BY 9 = 8 <-----CORRECT!! (37 SECONDS LEFT) 20 DIVIDED BY 4 = 5 <-----CORRECT!! (28 SECONDS LEFT) 48 DIVIDED BY 6 = 8 <-----CORRECT!! (14 SECONDS LEFT) 63 DIVIDED BY 9 = 7 <-----CORRECT!! ********** VERY GOOD MICHELLE!! TRY SOME REALLY HARD ONES!! (4 SECONDS LEFT) 49 DIVIDED BY 7 = 7 <-----CORRECT!! TIME IS UP!!!!! MICHELLE, YOU GOT 10 PROBLEMS CORRECT IN TWO MINUTES. YOU DID REALLY WELL!! (MICHELLE--YOU MISSED THE RECORD BY 1. . .) READY -8- PAGE 9 THE BOX PROGRAMS ARE A SET OF THREE PROGRAMS: BOXA BOXM BOX THE BOX PROGRAMS ARE DESIGNED TO DRILL THE USER IN SOLVING PROBLEMS OF THE TYPE: 6 + [] = 8 OR [] X 2 = 8 OR 6 - 2 = [] -BOXA- PROBLEMS WILL ALL BE ADDITION PROGRAMS UNTIL THE USER GETS THREE OF THEM CORRECT. AFTER THAT THE PROBLEMS WILL BE MIXED -- BOTH ADDITION AND SUBTRACTION PROBLEMS. THE LEVEL OF DIFFICULTY OF THE PROBLEMS WILL INCREASE AS THE USER SUCCESSFULLY ANSWERS THE GIVEN PROBLEMS. THE LEVELS OF DIFFICULTY ARE: LEVEL DIFFICULTY ----- ---------- EASY THE SUM IS LESS THAN 11. MEDIUM THE SUM IS LESS THAN 16. HARD THE SUM IS LESS THAN 21. -BOXM- IS VERY SIMILAR TO BOXA. THE DIFFERENCE IS THAT BOXM DEALS ONLY WITH MULTIPLICATION AND DIVISION PROBLEMS. LIKE BOXA, BOXM BEGINS WITH MULTIPLICATION PROBLEMS UNTIL THE USER SUCCESSFULLY ANSWERS THREE CORRECTLY -- THEN THE PROBLEMS BECOME MIXED (BOTH MULTIPLICATION AND DIVISION). THE DIFFICULY LEVELS ARE: LEVEL DIFFICULTY ----- ---------- EASY FACTOR RANGE FROM 1-6 [INCLUSIVE]. MEDIUM FACTORS RANGE FROM 4-10. HARD FACTORS RANGE FROM 7-12. -BOX- IS A COMBINATION OF BOXA AND BOXM, CONTAINING ADDITION, SUBTRACTION,MULTIPLICATION, AND DIVISION PROBLEMS. THE DIFFICULTY LEVEL IS THE SAME AS IN BOXA AND BOXM. HOWEVER, THE EASY PROBLEMS ARE STRICTLY ADDITION WHILE THE MEDIUM PROBLEMS CONTAIN ADDITION, SUBTRACTION, AND MULTIPLICATION, AND THE HARD PROBLEMS CONTAIN ALL FOUR TYPES OF PROBLEMS. (THE BOX PROGRAMS HAVE THE 'RECORD' OPTION.) DOCUMENTATION OF THE BOX PROGRAMS COMPLETED JULY 5, 1974 BY BOB HUNTSMAN. -9- PAGE 10 RUNNH GRADE? 5 ETHYL BOYES THE CURRENT RECORD FOR GRADE 5 IS -------------> 12 . . . . . .BY BART BYBEE ON 27-JUN-74!!! BOX ADDITION GAME! NAME PLEASE? BOB BOB, YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY AS YOU CAN!! (150 SECONDS LEFT) 2 + 2 = [] ---> [4] <---CORRECT!! (138 SECONDS LEFT) [] + 4 = 5 ---> [9] <---WRONG -- TRY AGAIN!! (129 SECONDS LEFT) [] + 4 = 5 ---> [4] <---WRONG!! THE CORRECT ANSWER IS ---> [1] !! (121 SECONDS LEFT) 4 + [] = 5 ---> [1] <---CORRECT!! (108 SECONDS LEFT) [] + 1 = 3 ---> [4] <---WRONG -- TRY AGAIN!! (99 SECONDS LEFT) [] + 1 = 3 ---> [2] <---CORRECT!! (91 SECONDS LEFT) 4 + [] = 5 ---> [1] <---CORRECT!! ************* BOB -- HERE ARE SOME HARDER PROBLEMS!! (82 SECONDS LEFT) [] + 1 = 15 ---> [16] <---WRONG -- TRY AGAIN!! (67 SECONDS LEFT) [] + 1 = 15 ---> [14] <---CORRECT!! (59 SECONDS LEFT) [] + 2 = 11 ---> [9] <---CORRECT!! (45 SECONDS LEFT) 5 + 1 = [] ---> [6] <---CORRECT!! (36 SECONDS LEFT) [] + 2 = 6 ---> [8] <---WRONG -- TRY AGAIN!! (28 SECONDS LEFT) [] + 2 = 6 ---> [4] <---CORRECT!! (7 SECONDS LEFT) [] + 5 = 12 ---> [8] <---WRONG!! TIME IS UP!!!!! BOB, YOU GOT 8 PROBLEMS CORRECT IN 2 1/2 MINUTES. YOU DID PRETTY WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!! (BOB--YOU MISSED THE RECORD BY 4. . .) READY -10- PAGE 11 RUNNH GRADE? 5 ETHYL BOYES THE CURRENT RECORD FOR GRADE 5 IS -------------> 13 . . . . . .BY TONY WHITTEMORE ON 31-MAY-74!!! BOX MULTIPLICATION GAME! NAME PLEASE? BOB BOB, YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY AS YOU CAN!! (150 SECONDS LEFT) 2 X 4 = [] --> [8] <--CORRECT!! (142 SECONDS LEFT) [] X 3 = 18 --> [4] <--WRONG -- TRY AGAIN!! (128 SECONDS LEFT) [] X 3 = 18 --> [5] <--WRONG!! THE CORRECT ANSWER IS ---> [6] !! (120 SECONDS LEFT) 5 X 2 = [] --> [10] <--CORRECT!! (106 SECONDS LEFT) 1 X [] = 3 --> [3] <--CORRECT!! (97 SECONDS LEFT) 3 X 4 = [] --> [12] <--CORRECT!! ************* BOB -- HERE ARE SOME HARDER PROBLEMS!! (83 SECONDS LEFT) [] X 4 = 32 --> [5] <--WRONG -- TRY AGAIN!! (70 SECONDS LEFT) [] X 4 = 32 --> [7] <--WRONG!! THE CORRECT ANSWER IS ---> [8] !! (62 SECONDS LEFT) 32 / 8 = [] --> [3] <--WRONG -- TRY AGAIN!! (49 SECONDS LEFT) 32 / 8 = [] --> [4] <--CORRECT!! (39 SECONDS LEFT) [] X 6 = 48 --> [8] <--CORRECT!! (24 SECONDS LEFT) [] / 4 = 7 --> [8] <--WRONG -- TRY AGAIN!! (16 SECONDS LEFT) [] / 4 = 7 --> [1] <--WRONG!! THE CORRECT ANSWER IS ---> [28] !! (8 SECONDS LEFT) 9 X 7 = [] --> [63] <--CORRECT!! TIME IS UP!!!!! BOB, YOU GOT 7 PROBLEMS CORRECT IN 2 1/2 MINUTES. YOU DID PRETTY WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!! (BOB--YOU MISSED THE RECORD BY 6. . .) READY -11- PAGE 12 RUNNH GRADE? 6 SPEED BOX GAME! NAME PLEASE? BOB BOB, YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY AS YOU CAN!! (150 SECONDS LEFT) 1 + [] = 5 ---> [6] <--WRONG -- TRY AGAIN!! (142 SECONDS LEFT) 1 + [] = 5 ---> [4] <--CORRECT!! (130 SECONDS LEFT) 4 + 1 = [] ---> [5] <--CORRECT!! (118 SECONDS LEFT) 1 + [] = 5 ---> [6] <--WRONG -- TRY AGAIN!! (110 SECONDS LEFT) 1 + [] = 5 ---> [4] <--CORRECT!! (106 SECONDS LEFT) 2 + 3 = [] ---> [5] <--CORRECT!! ************* BOB -- HERE ARE SOME HARDER PROBLEMS!! (95 SECONDS LEFT) 3 - [] = 1 ---> [2] <--CORRECT!! (87 SECONDS LEFT) [] X 7 = 56 ---> [8] <--CORRECT!! (76 SECONDS LEFT) 11 - [] = 10 ---> [1] <--CORRECT!! (69 SECONDS LEFT) [] X 6 = 30 ---> [5] <--CORRECT!! (60 SECONDS LEFT) 6 X 4 = [] ---> [24] <--CORRECT!! ********** VERY GOOD BOB!! TRY SOME REALLY HARD ONES!! (50 SECONDS LEFT) [] - 6 = 14 ---> [8] <--WRONG -- TRY AGAIN!! (40 SECONDS LEFT) [] - 6 = 14 ---> [20] <--CORRECT!! (31 SECONDS LEFT) 3 + 14 = [] ---> [17] <--CORRECT!! (23 SECONDS LEFT) 8 + [] = 9 ---> [1] <--CORRECT!! (18 SECONDS LEFT) [] / 10 = 10 ---> [100]<--CORRECT!! (5 SECONDS LEFT) 14 - 10 = [] ---> [4] <--CORRECT!! TIME IS UP!!!!! BOB, YOU GOT 14 PROBLEMS CORRECT IN 2 1/2 MINUTES. YOU DID GREAT -- CONGRATULATIONS!!!!! TYPE IN 'YES' IF YOU REALLY ARE IN GRADE 6:YES SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES THE RECORD -- CONGRATULATIONS, BOB!!!! ENTER FULL NAME--->BOB WILLIAMS READY -12- PAGE 13 THE PROGRESSIVE ADDITION PROGRAMS CONSIST OF TWO PROGRAMS -- -PROGAS- AND -PROGAL-. THEY ARE DESIGNED TO DRILL THE USER ON BASIC ADDITION PROBLEMS. THE PROBLEMS ARE OF THE FORM: 5 + [] = 7 OR [] + 3 = 12 ASSUME THAT THE USER IS RUNNING -PROGAS-. THE USER IS GIVEN THREE PROBLEMS WITH SUMS OF 5 (NOTE THAT THE SUM WILL ALWAYS BE GIVEN TO THE USER). IF THE USER GETS NO MORE THAN ONE INCORRECT ANSWER, HE WILL PROGRESS TO THE SIXES, AND AFTER SUCCESSFULLY COMPLETING THE SIXES, HE PROGRESSES TO THE SEVENS, AND SO ON UNTIL THE USER SUCCESSFULLY COMPLETES THE TENS. IF THE USER MISSES TWO OR MORE PROBLEMS WITH A PARTICULAR SUM, HE WILL REDO THAT GROUP BEFORE HE PROGRESSES TO THE NEXT GROUP. -PROGAL- IS IDENTICAL TO -PROGAS- EXCEPT THAT THE SUMS RANGE FROM 10 TO 15 INSTEAD OF 5 TO 10. THE PROGRESSIVE ADDITION PROGRAMS HAVE THE 'RECORD' OPTION. RECORDS ARE BASED ON TIME REQUIRED TO COMPLETE ALL THE PROBLEMS, RATHER THAN THE NUMBER OF CORRECT ANSWERS. DOCUMENTATION OF THE PROGRESSIVE ADDITION PROGRAMS WAS COMPLETED JULY 15, 1974 BY BOB HUNTSMAN. -13- PAGE 14 RUN PROGAS GRADE? 2 ETHYL BOYES THE CURRENT RECORD FOR GRADE 2 IS -----> 9 MINUTES, 23 SECONDS . . . . . .BY DEBRA LEAVITT ON 01-JUL-74!!! PROGRESSIVE ADDING GAME -- SMALL NUMBERS! NAME PLEASE? LAURA -----> 5'S!! 5 + [] = 5 <----[0] <---CORRECT!! 4 + [] = 5 <----[0] <---WRONG -- TRY AGAIN!! 4 + [] = 5 <----[1] <---CORRECT!! [] + 2 = 5 <----[2] <---WRONG -- TRY AGAIN!! [] + 2 = 5 <----[3] <---CORRECT!! LET'S DO SOME MORE OF THOSE, LAURA!! -----> 5'S!! [] + 1 = 5 <----[4] <---CORRECT!! [] + 2 = 5 <----[3] <---CORRECT!! 5 + [] = 5 <----[0] <---CORRECT!! -----> 6'S!! 1 + [] = 6 <----[5] <---CORRECT!! 6 + [] = 6 <----[6] <---WRONG -- TRY AGAIN!! 6 + [] = 6 <----[0] <---CORRECT!! [] + 2 = 6 <----[4] <---CORRECT!! -----> 7'S!! [] + 6 = 7 <----[1] <---CORRECT!! [] + 3 = 7 <----[1] <---WRONG -- TRY AGAIN!! [] + 3 = 7 <----[4] <---CORRECT!! [] + 7 = 7 <----[0] <---CORRECT!! -----> 8'S!! 2 + [] = 8 <----[0] <---WRONG -- TRY AGAIN!! 2 + [] = 8 <----[6] <---CORRECT!! [] + 0 = 8 <----[8] <---CORRECT!! [] + 3 = 8 <----[5] <---CORRECT!! -----> 9'S!! [] + 8 = 9 <----[1] <---CORRECT!! 4 + [] = 9 <----[6] <---WRONG -- TRY AGAIN!! 4 + [] = 9 <----[5] <---CORRECT!! 9 + [] = 9 <----[1] <---WRONG -- TRY AGAIN!! -14- PAGE 15 9 + [] = 9 <----[9] <---WRONG!! THE CORRECT ANSWER IS ---> [0] !! LET'S DO SOME MORE OF THOSE, LAURA!! -----> 9'S!! [] + 3 = 9 <----[7] <---WRONG -- TRY AGAIN!! [] + 3 = 9 <----[6] <---CORRECT!! 0 + [] = 9 <----[9] <---CORRECT!! 8 + [] = 9 <----[1] <---CORRECT!! -----> 10'S!! 5 + [] = 10 <----[5] <---CORRECT!! 0 + [] = 10 <----[0] <---WRONG -- TRY AGAIN!! 0 + [] = 10 <----[10] <---CORRECT!! [] + 8 = 10 <----[0] <---WRONG -- TRY AGAIN!! [] + 8 = 10 <----[2] <---CORRECT!! LET'S DO SOME MORE OF THOSE, LAURA!! -----> 10'S!! 7 + [] = 10 <----[3] <---CORRECT!! 1 + [] = 10 <----[9] <---CORRECT!! 0 + [] = 10 <----[10] <---CORRECT!! CONGRATULATIONS, LAURA -- YOU MADE IT!! YOU FINISHED IN 11 MINUTES AND 9 SECONDS!! (LAURA -- YOU GOT 26 RIGHT AND 11 WRONG.) (LAURA--YOU MISSED THE RECORD BY 106 SECONDS. . .) READY -15- PAGE 16 RUN GRADE? 3 ETHYL BOYES THE CURRENT RECORD FOR GRADE 3 IS -----> 2 MINUTES, 54 SECONDS . . . . . .BY RYAN ELLIS ON 05-JUL-74!!! PROGRESSIVE ADDING GAME -- LARGE NUMBERS! NAME PLEASE? SCOTT -----> 10'S!! 5 + [] = 10 <----[5] <---CORRECT!! 8 + [] = 10 <----[2] <---CORRECT!! 4 + [] = 10 <----[6] <---CORRECT!! -----> 11'S!! 7 + [] = 11 <----[3] <---WRONG -- TRY AGAIN!! 7 + [] = 11 <----[4] <---CORRECT!! [] + 1 = 11 <----[10] <---CORRECT!! [] + 0 = 11 <----[11] <---CORRECT!! -----> 12'S!! 9 + [] = 12 <----[3] <---CORRECT!! [] + 4 = 12 <----[9] <---WRONG -- TRY AGAIN!! [] + 4 = 12 <----[8] <---CORRECT!! 7 + [] = 12 <----[4] <---WRONG -- TRY AGAIN!! 7 + [] = 12 <----[5] <---CORRECT!! LET'S DO SOME MORE OF THOSE, SCOTT!! -----> 12'S!! 9 + [] = 12 <----[3] <---CORRECT!! 5 + [] = 12 <----[7] <---CORRECT!! 8 + [] = 12 <----[5] <---WRONG -- TRY AGAIN!! 8 + [] = 12 <----[3] <---WRONG!! THE CORRECT ANSWER IS ---> [4] !! LET'S DO SOME MORE OF THOSE, SCOTT!! -----> 12'S!! [] + 6 = 12 <----[6] <---CORRECT!! 9 + [] = 12 <----[3] <---CORRECT!! 5 + [] = 12 <----[7] <---CORRECT!! -----> 13'S!! 8 + [] = 13 <----[5] <---CORRECT!! -16- PAGE 17 [] + 13 = 13 <----[1] <---WRONG -- TRY AGAIN!! [] + 13 = 13 <----[0] <---CORRECT!! 8 + [] = 13 <----[5] <---CORRECT!! -----> 14'S!! [] + 8 = 14 <----[6] <---CORRECT!! [] + 2 = 14 <----[12] <---CORRECT!! 4 + [] = 14 <----[10] <---CORRECT!! -----> 15'S!! [] + 3 = 15 <----[13] <---WRONG -- TRY AGAIN!! [] + 3 = 15 <----[12] <---CORRECT!! 7 + [] = 15 <----[6] <---WRONG -- TRY AGAIN!! 7 + [] = 15 <----[8] <---CORRECT!! [] + 3 = 15 <----[12] <---CORRECT!! LET'S DO SOME MORE OF THOSE, SCOTT!! -----> 15'S!! [] + 8 = 15 <----[7] <---CORRECT!! [] + 13 = 15 <----[2] <---CORRECT!! 5 + [] = 15 <----[10] <---CORRECT!! CONGRATULATIONS, SCOTT -- YOU MADE IT!! YOU FINISHED IN 4 MINUTES AND 24 SECONDS!! (SCOTT -- YOU GOT 26 RIGHT AND 8 WRONG.) (SCOTT--YOU MISSED THE RECORD BY 81 SECONDS. . .) READY -17- PAGE 18 RUN DBL10 GRADE? 2 LINDEN PARK THE CURRENT RECORD FOR GRADE 2 IS -------------> 6 . . . . . .BY WILLIAM FUNK ON 08-JUL-74!!! DOUBLES/10'S GAME! NAME PLEASE? BECKY TWO MINUTES, BECKY. . . . . (120 SECONDS LEFT) 1 + [] = 10 ---> [9] <--CORRECT!! (107 SECONDS LEFT) 6 + [] = 10 ---> [4] <--CORRECT!! (93 SECONDS LEFT) [] + 0 = 10 ---> [10] <--CORRECT!! (78 SECONDS LEFT) 0 + [] = 10 ---> [10] <--CORRECT!! ************* OK, BECKY, HERE IS ANOTHER KIND OF PROBLEM!! (68 SECONDS LEFT) [] + [] = 10 ---> [5] <--CORRECT!! (44 SECONDS LEFT) [] + [] = 14 ---> [8] <--WRONG -- TRY AGAIN!! (5 SECONDS LEFT) [] + [] = 14 ---> [7] <--CORRECT!! TIME IS UP!!!!! BECKY, YOU GOT 6 PROBLEMS CORRECT IN TWO MINUTES. YOU DEFINITELY NEED MORE PRACTICE ON THESE PROBLEMS!!! SORRY -- YOU TIED THE RECORD, BUT YOU MUST BEAT IT TO BE THE NEW RECORD HOLDER!! READY -18- PAGE 19 NOTES ON THE 'RECORD' OPTION THE 'RECORD' OPTION IS A FEATURE INCLUDED IN MOST OF THE PROGRAMS IN THIS SERIES. IF A PROGRAM HAS THE 'RECORD' OPTION, IT MEANS THAT THE BEST SCORE THUS FAR FOR EACH GRADE WILL BE RECORDED. WHEN EACH PROGRAM IS RUN, THE USER IS INFORMED OF THE CURRENT RECORD, WHO HOLDS IT, AND WHEN IT WAS SET. THE USER CAN THEN TRY TO BEAT THE RECORD, AND EVEN IF UNSUCCESSFUL, HE CAN COMPARE HIS SCORE TO THE TOP SCORE. A SEPARATE RECORD IS STORED FOR EACH GRADE (GRADES RANGE FROM 1 TO 12). EXAMPLE: GRADE? 3 LINDEN PARK SCHOOL THE CURRENT RECORD FOR GRADE 3 IS -------------> 10 . . . . . .BY JEFF STODDARD ON 08-JUL-74!!! SPEED ADDITION GAME! NAME PLEASE? SHAWN . . . IF SHAWN WAS ABLE TO SCORE 11 OR BETTER, HIS NAME AND SCORE WOULD BE RECORDED! AS THE USER COMPLETES EACH PROGRAM, HE IS INFORMED HOW HIS SCORE COMPARES WITH THE RECORD. IF THE USER'S SCORE DOES NOT BEAT THE RECORD, HE IS INFORMED HOW CLOSE HE WAS. IF THE USER'S SCORE TIES THE RECORD, HE IS INFORMED THAT HE MUST BEAT THE RECORD TO BECOME THE NEW RECORD HOLDER. IF THE USER BEATS THE RECORD, HE WILL BE ASKED IF HE REALLY IS IN THAT GRADE. THE USER SHOULD ANSWER 'YES' OR HIS SCORE WILL NOT BE RECORDED. HE WILL THEN BE ASKED TO ENTER HIS FULL NAME, AND THEN THE PROGRAM WILL TERMINATE. HE NOW HOLDS THE CURRENT RECORD! THE 'RECORD' FILE WILL BE CREATED IF IT DOES NOT ALREADY EXIST. WHEN THE FILE IS BEING CREATED, THE USER WILL BE ASKED TO ENTER THE NAME OF THE SCHOOL (OR ORGANIZATION.) ALL THE 'RECORD' DATA IS STORED ON A DISK FILE NAME 'RECORD' IN THE USER'S ACCOUNT. THE FILE INITIALLY IS ONE BLOCK LONG, AND WILL BE EXTENDED ONE BLOCK EACH TIME A PROGRAM IS RUN FOR THE FIRST TIME UNDER THE SAME ACCOUNT. RERUNNING A PROGRAM WILL NOT INCREASE THE FILE SIZE. IF THE USER DOES NOT WANT THE 'RECORD' FILE TO BE BUILT, OR DOES NOT WANT HIS SCORE RECORD, HE SHOULD HIT THE 'RETURN' KEY WHEN ASKED FOR GRADE. THIS IS PARTICULARLY USEFUL WHEN DEMONSTRATING A PROGRAM. -19- PROGRAM: SPEEDA PAGE 20 4 N2%=1%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "SPEED ADDITION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;" -- YOU HAVE TWO MINUTES. DO AS MANY PROBLEMS AS YOU "; "CAN!!":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=1%:X%=0%:R%=0%:T%=120% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT "GOOD, ";N$;"!! NOW SOME HARDER ONES!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%) OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD, ";N$;"! FINALLY, SOME REALLY HARD ONES!!":PRINT: B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 Q%=FNR%(5%+5%*B%):B0%=B1%:B2%=FNR%(5%*B%+5%):GOTO 1210 IF B2%>Q% 1215 GOTO 1210 IF B2%=B0%:B1%=B2%:A1%=Q%-B1% 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; 1240 PRINT SPACE$(2%-FNB%(A1%));FNN$(A1%);" + ";FNN$(B1%);TAB(29%); " = ";:T0=TIME(0%) -20- PROGRAM: SPEEDA [CONT] PAGE 21 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(Q%);"!!": PRINT:RETURN 1320 DEF FNA% 1330 D%=0% 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)Q%/10^FNB%(Q%) 1350 FNA%=1%:FNA%=0% IF D%=Q% 1360 PRINT TAB(35%);"<-----"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0% 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT -21- PROGRAM: SPEEDA [CONT] PAGE 22 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -22- PROGRAM: SPEEDS PAGE 23 4 N2%=2%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "SPEED SUBTRACTION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;" -- YOU HAVE TWO MINUTES. DO AS MANY PROBLEMS AS YOU "; "CAN!!":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=1%:X%=0%:R%=0%:T%=120% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT "GOOD, ";N$;"!! NOW SOME HARDER ONES!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%) OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD, ";N$;"! FINALLY, SOME REALLY HARD ONES!!":PRINT: B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 Q%=FNR%(5%+5%*B%):B0%=B1%:B2%=FNR%(5%*B%+5%):GOTO 1210 IF B2%>Q% 1215 GOTO 1210 IF B2%=B0%:B1%=B2%:A1%=Q%-B1% 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; 1240 PRINT SPACE$(2%-FNB%(Q%));FNN$(Q%);" - ";FNN$(B1%);TAB(29%); " = ";:T0=TIME(0%) -23- PROGRAM: SPEEDS [CONT] PAGE 24 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(A1%);"!!": PRINT:RETURN 1320 DEF FNA% 1330 D%=0% 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A1%/10%^FNB%(A1%) 1350 FNA%=1%:FNA%=0% IF D%=A1% 1360 PRINT TAB(35%);"<-----"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0% 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT -24- PROGRAM: SPEEDS [CONT] PAGE 25 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -25- PROGRAM: SPEEDM PAGE 26 4 N2%=3%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "SPEED MULTIPLICATION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;", YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!!": PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=1%:X%=0%:R%=0%:T%=120% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%) OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! TRY SOME REALLY HARD ONES!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 A1%=FNR%(6%)+(B%-1%)*3%:B0%=B1%:B1%=FNR%(6%)+(B%-1%)*3%: GOTO 1210 IF B1%=B0%:Q%=A1%*B1% 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; 1240 PRINT SPACE$(2%-FNB%(A1%));FNN$(A1%);" X ";FNN$(B1%);TAB(29%); " = ";:T0=TIME(0%) -26- PROGRAM: SPEEDM [CONT] PAGE 27 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(Q%);"!!": PRINT:RETURN 1320 DEF FNA% 1330 D%=0% 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)Q%/10%^FNB%(Q%) 1350 FNA%=1%:FNA%=0% IF D%=Q% 1360 PRINT TAB(35%);"<-----"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0% 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT -27- PROGRAM: SPEEDM [CONT] PAGE 28 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -28- PROGRAM: SPEEDD PAGE 29 4 N2%=4%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "SPEED DIVISION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;", YOU HAVE TWO MINUTES -- DO AS MANY AS YOU CAN!!": PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=1%:X%=0%:R%=0%:T%=120% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<8%) OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! TRY SOME REALLY HARD ONES!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 A1%=FNR%(6%)+(B%-1%)*3%:B0%=B1%:B1%=FNR%(6%)+(B%-1%)*3%: GOTO 1210 IF B1%=B0%:Q%=A1%*B1% 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; 1240 PRINT SPACE$(2%-FNB%(Q%));FNN$(Q%);" DIVIDED BY ";FNN$(B1%);TAB(38%); " = ";:T0=TIME(0%) -29- PROGRAM: SPEEDD [CONT] PAGE 30 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS -----> ";FNN$(A1%);"!!": PRINT:RETURN 1320 DEF FNA% 1330 D%=0% 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A1%/10%^FNB%(A1%) 1350 FNA%=1%:FNA%=0% IF D%=A1% 1360 PRINT TAB(44%);"<-----"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0% 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT -30- PROGRAM: SPEEDD [CONT] PAGE 31 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -31- PROGRAM: BOXA PAGE 32 4 N2%=6%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1%:ON ERROR GOTO 0 1010 PRINT:PRINT "BOX ADDITION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY": PRINT "AS YOU CAN!!":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=0%:R%=0%:T%=150% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%)>4% OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! TRY SOME REALLY HARD ONES!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 O%=FNR%(2%):O%=1% IF R%<4%:GOSUB 1850 1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1% 1212 ON O% GOSUB 1810,1820 1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]" 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; -32- PROGRAM: BOXA [CONT] PAGE 33 1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%); 1242 PRINT " = ";A$(3%);:T0=TIME(0%) 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT TAB(35%);"---> ["; 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(45%);"<---"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 1810 O$="+":A%(3%)=A%(1%)+A%(2%):RETURN 1820 O$="-":A%(3%)=A%(1%):A%(1%)=A%(1%)+A%(2%):RETURN 1850 A5%=A%(1%):B1%=FNR%(5%+5%*B%):GOTO 1850 IF B1%=A5% 1855 A%(2%)=FNR%(B%*B%+5%):GOTO 1850 IF B1%+A%(2%)>5%+B%*5%: A%(1%)=B1%:RETURN 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 -33- PROGRAM: BOXA [CONT] PAGE 34 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -34- PROGRAM: BOXM PAGE 35 4 N2%=7%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "BOX MULTIPLICATION GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY": PRINT "AS YOU CAN!!":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=1%:R%=0%:T%=150% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%)>4% OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! TRY SOME REALLY HARD ONES!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 O%=FNR%(2%)+2%:O%=3% IF R%<4%:GOSUB 1870 1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1% 1212 ON O% GOSUB 1810,1820,1830,1840 1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]" 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; -35- PROGRAM: BOXM [CONT] PAGE 36 1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%); 1242 PRINT " = ";A$(3%);:T0=TIME(0%) 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT TAB(37%);"--> ["; 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(46%);"<--"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 1810 PRINT "ERROR 1810!!":STOP 1820 PRINT "ERROR 1820!!":STOP 1830 O$="X":A%(3%)=A%(1%)*A%(2%):RETURN 1840 O$="/":A%(3%)=A%(1%):A%(1%)=A%(1%)*A%(2%):RETURN 1870 A5%=A%(1%):B1%=FNR%(6%)+(B%-1%)*3%:GOTO 1870 IF B1%=A5% 1875 A%(1%)=B1%:A%(2%)=FNR%(6%)+(B%-1%)*3%:RETURN 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": -36- PROGRAM: BOXM [CONT] PAGE 37 GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -37- PROGRAM: BOX PAGE 38 4 N2%=5%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "SPEED BOX GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT N$;", YOU HAVE TWO AND ONE HALF MINUTES -- DO AS MANY": PRINT "AS YOU CAN!!":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=0%:R%=0%:T%=150% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT N$;" -- HERE ARE SOME HARDER PROBLEMS!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%)>4% OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! TRY SOME REALLY HARD ONES!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 O%=FNR%(B%+1%):GOSUB 1850 IF O%<3%:GOSUB 1870 IF O%>2% 1211 M5%=M%:M1%=FNR%(3%):GOTO 1211 IF M1%=M5% UNLESS M1%=1%:M%=M1% 1212 ON O% GOSUB 1810,1820,1830,1840 1215 A$(K%)=FNN$(A%(K%)) FOR K%=1% TO 3%:A$(M%)="[]" 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; -38- PROGRAM: BOX [CONT] PAGE 39 1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%); 1242 PRINT " = ";A$(3%);:T0=TIME(0%) 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT TAB(35%);"---> ["; 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(45%);"<--"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN 2 1/2 MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 1810 O$="+":A%(3%)=A%(1%)+A%(2%):RETURN 1820 O$="-":A%(3%)=A%(1%):A%(1%)=A%(1%)+A%(2%):RETURN 1830 O$="X":A%(3%)=A%(1%)*A%(2%):RETURN 1840 O$="/":A%(3%)=A%(1%):A%(1%)=A%(1%)*A%(2%):RETURN 1850 A5%=A%(1%):B1%=FNR%(5%+5%*B%):GOTO 1850 IF B1%=A5% 1855 A%(2%)=FNR%(B%*B%+5%):GOTO 1850 IF B1%+A%(2%)>5%+B%*5%: A%(1%)=B1%:RETURN 1870 A5%=A%(1%):B1%=FNR%(6%)+(B%-1%)*3%:GOTO 1870 IF B1%=A5% 1875 A%(1%)=B1%:A%(2%)=FNR%(6%)+(B%-1%)*3%:RETURN 9000 PRINT:GOTO 9200 IF R%>R9% -39- PROGRAM: BOX [CONT] PAGE 40 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES "; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -40- PROGRAM: PROGAS PAGE 41 2 ! PROGRAM NAME --> P R O G A S -- BY BOB HUNTSMAN 4 N2%=9%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF CVT$%(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE";G2%;" IS -----> ";:R%=CVT$%(R1$(G2%)) 47 T%=R%/60%:S%=R%-T%*60%:PRINT T%;"MINUTE";:PRINT "S"; IF T%<>1% 48 PRINT ",";S%;"SECOND";:PRINT "S"; IF S%<>1%:PRINT 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=CVT$%(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,2% AS R1$(K%),1% AS Z2$(K%), 20% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "PROGRESSIVE ADDING GAME -- SMALL NUMBERS!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1025 V9$=SYS(CHR$(3%)) 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOM 1060 R%,W1%=0%:T0=TIME(0%):GOSUB 1200 FOR A%=5% TO 10% 1080 PRINT:PRINT "CONGRATULATIONS, ";N$;" -- YOU MADE IT!!":PRINT 1090 T0=TIME(0%)-T0:T%=T0/60%:S%=T0-T%*60% 1093 PRINT:PRINT "YOU FINISHED IN";T%;"MINUTES AND";S%;"SECONDS!!": PRINT "(";N$;" -- YOU GOT";R%;"RIGHT AND";W1%;"WRONG.)": PRINT:PRINT:R%=T0:GOTO 9000 1200 PRINT:PRINT "-----> ";FNN$(A%);"'S!!":PRINT 1205 W%=0%:FOR A8%=1% TO 3% 1210 A5%=FNR%(A%+1%)-1%:GOTO 1210 IF A%(1%)=A5% OR A%(2%)=A5%: A%(1%)=A5%:A%(2%)=A%-A5%:A%(3%)=A%:M%=FNR%(2%) 1215 A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):A$(3%)=FNN$(A%(3%)):T9%=0% 1220 PRINT A$(1%);" + ";A$(2%);" = ";A$(3%);TAB(15%);"<----";:C%=FNA%: C8%=0%:GOSUB 1270:GOTO 1220 IF C8%=1% 1225 NEXT A8% 1230 RETURN IF W%<2%:PRINT:PRINT "LET'S DO SOME MORE OF THOSE, ";N$;"!!": A%=A%-1%:RETURN 1270 GOTO 1300 IF C%=0%:PRINT "WRONG";:W%=W%+1%:W1%=W1%+1% -41- PROGRAM: PROGAS [CONT] PAGE 42 1280 GOTO 1310 IF T9%=1% 1290 PRINT " -- TRY AGAIN!!":T9%,C8%=1%:RETURN 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT "["; 1340 A7%=FNQ%:D%=D%*10%+A7%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(25%);"<---"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 9000 PRINT:V9$=SYS(CHR$(2%)):GOTO 9600 IF G2%=0%:GOTO 9200 IF R%"Y" 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CVT%$(R%):LSET D1$(G2%)=DATE$(0%) -42- PROGRAM: PROGAS [CONT] PAGE 43 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -43- PROGRAM: PROGAL PAGE 44 2 ! PROGRAM NAME --> P R O G A L -- BY BOB HUNTSMAN 4 N2%=10%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF CVT$%(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE";G2%;" IS -----> ";:R%=CVT$%(R1$(G2%)) 47 T%=R%/60%:S%=R%-T%*60%:PRINT T%;"MINUTE";:PRINT "S"; IF T%<>1% 48 PRINT ",";S%;"SECOND";:PRINT "S"; IF S%<>1%:PRINT 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=CVT$%(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CVT%$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,2% AS R1$(K%),1% AS Z2$(K%), 20% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "PROGRESSIVE ADDING GAME -- LARGE NUMBERS!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1025 V9$=SYS(CHR$(3%)) 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOM 1060 R%,W1%=0%:T0=TIME(0%):GOSUB 1200 FOR A%=10% TO 15% 1080 PRINT:PRINT "CONGRATULATIONS, ";N$;" -- YOU MADE IT!!":PRINT 1090 T0=TIME(0%)-T0:T%=T0/60%:S%=T0-T%*60% 1093 PRINT:PRINT "YOU FINISHED IN";T%;"MINUTES AND";S%;"SECONDS!!": PRINT "(";N$;" -- YOU GOT";R%;"RIGHT AND";W1%;"WRONG.)": PRINT:PRINT:R%=T0:GOTO 9000 1200 PRINT:PRINT "-----> ";FNN$(A%);"'S!!":PRINT 1205 W%=0%:FOR A8%=1% TO 3% 1210 A5%=FNR%(A%+1%)-1%:GOTO 1210 IF A%(1%)=A5% OR A%(2%)=A5%: A%(1%)=A5%:A%(2%)=A%-A5%:A%(3%)=A%:M%=FNR%(2%) 1215 A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):A$(3%)=FNN$(A%(3%)):T9%=0% 1220 PRINT A$(1%);" + ";A$(2%);" = ";A$(3%);TAB(15%);"<----";:C%=FNA%: C8%=0%:GOSUB 1270:GOTO 1220 IF C8%=1% 1225 NEXT A8% 1230 RETURN IF W%<2%:PRINT:PRINT "LET'S DO SOME MORE OF THOSE, ";N$;"!!": A%=A%-1%:RETURN 1270 GOTO 1300 IF C%=0%:PRINT "WRONG";:W%=W%+1%:W1%=W1%+1% -44- PROGRAM: PROGAL [CONT] PAGE 45 1280 GOTO 1310 IF T9%=1% 1290 PRINT " -- TRY AGAIN!!":T9%,C8%=1%:RETURN 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT "["; 1340 A7%=FNQ%:D%=D%*10%+A7%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(25%);"<---"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 9000 PRINT:V9$=SYS(CHR$(2%)):GOTO 9600 IF G2%=0%:GOTO 9200 IF R%"Y" 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CVT%$(R%):LSET D1$(G2%)=DATE$(0%) -45- PROGRAM: PROGAL [CONT] PAGE 46 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -46- PROGRAM: DBL10 PAGE 47 4 N2%=8%:N1%=1% 5 PRINT:INPUT "GRADE";G2%:R9%=0%:GOTO 1000 IF G2%=0% 7 DIM R1$(12%),Z2$(12%),N1$(12%),D1$(12%),D2$(12%) 8 OPEN "KB:" AS FILE 2% 10 ON ERROR GOTO 500:OPEN "RECORD" FOR INPUT AS FILE 1%:ON ERROR GOTO 0 15 GOSUB 700 20 ON ERROR GOTO 800:GET #1%,RECORD 1% 25 GOTO 30 IF ASCII(N1$)=N2%:N1%=N1%+1% 27 GET #1%,RECORD N1%:GOTO 25 30 G2%=12% IF G2%>12%:IF ASCII(R1$(G2%))=0% THEN R9%=-1%:GOTO 1000 35 PRINT:PRINT LEFT(O$,INSTR(1%,O$," ")-1%):PRINT 40 PRINT "THE CURRENT RECORD FOR "; 45 PRINT "GRADE ";FNN$(G2%);" IS -------------> ";FNN$(ASCII(R1$(G2%))) 50 PRINT ". . . . . .BY ";LEFT(N1$(G2%),ASCII(Z2$(G2%)));" ON "; D1$(G2%);"!!!":PRINT:PRINT:R9%=ASCII(R1$(G2%)) 60 GOTO 1000 500 ON ERROR GOTO 0 IF ERR<>5% 505 OPEN "RECORD" AS FILE 1%:GOSUB 700 510 PRINT "PLEASE ENTER SCHOOL NAME:";:INPUT LINE #2%,A$ 515 LSET Z2$(G2%)=CHR$(LEN(A$)):LSET N1$=CHR$(N2%) 520 LSET O$=LEFT(A$,LEN(A$)-2%):LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12% 530 PUT #1%,RECORD 1%:RESUME 30 600 LSET R1$(K%)=CHR$(0%) FOR K%=1% TO 12%:LSET N1$=CHR$(N2%): PUT #1%,RECORD N1%:GOTO 30 700 FIELD #1%,40%*(K%-1%)+32% AS Q$,1% AS R1$(K%),1% AS Z2$(K%), 21% AS N1$(K%),9% AS D1$(K%),8% AS D2$(K%) FOR K%=1% TO 12% 710 FIELD #1%,1% AS N1$,31% AS O$:RETURN 800 ON ERROR GOTO 0 IF ERR<>11% 810 RESUME 600 1000 CLOSE 1% 1010 PRINT:PRINT "DOUBLES/10'S GAME!":PRINT 1020 INPUT "NAME PLEASE";N$:OPEN "KB:" AS FILE 2% 1030 DIM B5%(5%),M$(5%):B6%=1%:B5%(K%)=-1% FOR K%=1% TO 5% 1040 FIELD #2%,K% AS Q$,1% AS M$(K%+1%) FOR K%=0% TO 4% 1050 RANDOMIZE 1060 PRINT:PRINT "TWO MINUTES, ";N$;". . . . .":PRINT:PRINT 1080 V9$=SYS(CHR$(3%)) 1090 B%=1%:R%=0%:T%=120% 1100 FOR K%=1% UNTIL (R%>3% AND K%<7%) OR R%>8%:GOSUB 1210:NEXT K% 1110 PRINT:PRINT "*************":PRINT 1120 PRINT "OK, ";N$;", HERE IS ANOTHER KIND OF PROBLEM!!":PRINT 1140 B%=2%:R0%=R%:GOSUB 1210 FOR K%=1% UNTIL (R%-R0%>4% AND K%<7%) OR R%-R0%>6% 1150 PRINT:PRINT "**********":PRINT 1160 PRINT "VERY GOOD ";N$;"!! NOW I'LL GIVE YOU BOTH KINDS!!":PRINT: R0%=R%:B%=3% 1180 GOSUB 1210 FOR K%=1% UNTIL 1%=2% 1190 PRINT "SOFTWARE CHECK 130!!":STOP 1200 FOR K%=1% UNTIL 1%=2%:GOSUB 1210:NEXT K% 1210 M%=FNR%(2%):IF B%=3% THEN O%=FNR%(2%):ON O% GOSUB 1870,1850: ON O% GOSUB 1810,1830:GOTO 1220 1211 ON B% GOSUB 1870,1850:ON B% GOSUB 1810,1830 1212 ON B% GOSUB 1810,1830 1220 T9%=0%:GOTO 1590 IF T%<=0% 1230 PRINT SPACE$(3%-LEN(FNN$(T%)));"(";FNN$(T%);" SECONDS LEFT) "; 1240 PRINT SPACE$(2%-LEN(A$(1%)));A$(1%);" ";O$;" ";A$(2%);TAB(29%); -47- PROGRAM: DBL10 [CONT] PAGE 48 1242 PRINT " = ";A$(3%);:T0=TIME(0%) 1250 C%=FNA%:T0%=INT(TIME(0%)-T0) 1260 T%=T%-T0% 1270 GOTO 1300 IF C%=0%:PRINT "WRONG"; 1280 GOTO 1310 IF T9%=1%:IF T%<=0% THEN PRINT "!!":GOTO 1590 1290 PRINT " -- TRY AGAIN!!":T9%=1%:GOTO 1230 1300 PRINT "CORRECT!!":R%=R%+1%:RETURN 1310 PRINT "!!":PRINT:PRINT "THE CORRECT ANSWER IS ---> ["; FNN$(A%(M%));"] !!":PRINT:RETURN 1320 DEF FNA% 1330 D%=0%:PRINT TAB(35%);"---> ["; 1340 A%=FNQ%:D%=D%*10%+A%:GOTO 1340 IF FNB%(D%)A%(M%)/10%^FNB%(A%(M%)) 1350 FNA%=1%:FNA%=0% IF D%=A%(M%) 1360 PRINT "]";TAB(45%);"<--"; 1370 FNEND 1380 DEF FNB%(X9%) 1390 IF X9%<1% THEN FNB%=0%:GOTO 1410 1400 FNB%=INT(LOG10(X9%)) 1410 FNEND 1420 DEF FNN$(X9%)=MID(NUM$(X9%),2%,LEN(NUM$(X9%))-2%) 1430 DEF FNR%(X9%) 1440 X8%=INT(1000%*RND(1%)):X8%=X8%-X8%/X9%*X9% 1450 FNR%=X8%+1% 1460 FNEND 1470 DEF FNQ% 1480 C1%=FNP%-48%:GOTO 1480 IF C1%<0% OR C1%>9% 1490 FNQ%=C1% 1500 PRINT CHR$(C1%+48%); 1510 FNEND 1520 DEF FNP% 1530 C2%=B5%(B6%):IF C2%>-1% THEN FNP%=C2%:B6%=B6%+1%:GOTO 1580 1540 B5%(K5%)=-1% FOR K5%=1% TO 5% 1550 V9$=SYS(CHR$(4%)):GET #2%:K6%=RECOUNT 1560 B5%(K5%)=ASCII(M$(K5%)) FOR K5%=1% TO K6% 1570 B6%=1%:GOTO 1530 1580 FNEND 1590 PRINT:PRINT:V9$=SYS(CHR$(2%)) 1595 PRINT:PRINT "TIME IS UP!!!!!":PRINT 1600 PRINT N$;", YOU GOT";R%;"PROBLEMS CORRECT IN TWO MINUTES. "; 1610 IF R%<7% THEN PRINT "YOU DEFINITELY":PRINT "NEED MORE PRACTICE "; "ON THESE PROBLEMS!!!":GOTO 1650 1620 IF R%<9% THEN PRINT "YOU DID PRETTY":PRINT "WELL; HOWEVER MORE PRACTICE WOULDN'T HURT!!":GOTO 1650 1630 IF R%<11% THEN PRINT "YOU DID REALLY WELL!!":GOTO 1650 1640 PRINT "YOU DID":PRINT "GREAT -- CONGRATULATIONS!!!!!":GOTO 1650 1650 PRINT:PRINT:GOTO 9600 IF G2%=0%:GOTO 9000 1810 O$="+":A%(3%)=A%(1%)+A%(2%):A$(3%)=FNN$(A%(3%)): A$(M%)="[]":A$(3%-M%)=FNN$(A%(3%-M%)):RETURN 1830 O$="+":A$(3%)=FNN$(A%(3%)):A$(1%),A$(2%)="[]":RETURN 1850 A5%=A%(1%):A%(1%)=FNR%(11%)-1%:GOTO 1850 IF A%(1%)=A5%: A%(2%)=A%(1%):A%(3%)=A%(1%)+A%(2%):RETURN 1855 A%(1%)=B1%:A%(2%)=10%-A%(1%):A%(3%)=10%:RETURN 1870 A5%=A%(1%):A%(1%)=FNR%(11%)-1%:GOTO 1870 IF A%(1%)=A5%: A%(2%)=10%-A%(1%):A%(3%)=10%:RETURN 9000 PRINT:GOTO 9200 IF R%>R9% 9010 IF R%=R9% THEN PRINT "SORRY -- YOU TIED THE RECORD, BUT YOU MUST "; "BEAT IT TO BE":PRINT "THE NEW RECORD HOLDER!!":GOTO 9500 -48- PROGRAM: DBL10 [CONT] PAGE 49 9020 PRINT "(";N$;"--YOU MISSED THE RECORD BY ";FNN$(R9%-R%);". . .)": GOTO 9500 9200 PRINT "TYPE IN 'YES' IF YOU REALLY ARE IN GRADE ";FNN$(G2%);":";: INPUT #2%,A$:PRINT:PRINT:GOTO 9600 IF LEFT(A$,1%)<>"Y" 9201 IF R9%<0% THEN PRINT "SINCE THIS GRADE IS NEW, YOUR SCORE BECOMES"; "THE RECORD --":PRINT "CONGRATULATIONS, ";N$;"!!!!":PRINT: GOTO 9205 9203 PRINT "CONGRATULATIONS, ";N$;"!!! A NEW RECORD!!": PRINT:PRINT 9205 OPEN "RECORD" AS FILE 1%:GOSUB 700:GET #1%,RECORD N1% 9210 PRINT "ENTER FULL NAME--->";:INPUT LINE #2%,A$ 9220 LSET R1$(G2%)=CHR$(R%):LSET D1$(G2%)=DATE$(0%) 9225 LSET N1$(G2%)=LEFT(A$,LEN(A$)-2%) 9230 LSET Z2$(G2%)=CHR$(LEN(A$)-2%):PUT #1%,RECORD N1% 9500 PRINT:PRINT:CLOSE 1% 9600 END -49-