P96 Arithmetic Tutor


This is the bare bones of a tutorial program which could be used in a primary school class. The program allows the pupil to have practice in simple arithmetic problems. The program is constructed in such a way as to allow the pupil to enter the answer in a neutral manner. For example, if we have the following sum:

    123
   + 25
   ____

The pupil will enter the answer by pressing key 8 then key 4 then key 1 then (RETURN) to complete the answer.

COMMANDS

Key in program and type RUN.
Select problem type.
Enter result then press RETURN.
If correct, main menu is displayed.
If wrong, enter new answer.

  100 REM Program P96 - Arithmetic Tutor
  110 MODE 6
  120 PRINT TAB(12,12)"A R I T H M E T I C"
  130 PRINT TAB(14,14)"T U T O R"
  140 Z=INKEY(300)
  150 VDU 23,224,4,4,4,4,4,4,4,4
  160 VDU 23,225,4,7,0,0,0,0,0,0
  170 VDU 23,226,0,255,0,0,0,0,0,0
  180 REPEAT
  190   CLS
  200   PRINT "You will be presented with an"
  210   PRINT "arithmetic problem. Solve the problem"
  220   PRINT "by keying in your solution in the"
  230   PRINT "normal manner."
  240   PRINT ''"Problems can be given in:"
  250   PRINT '"1. Addition"
  260   PRINT "2. Subtraction"
  270   PRINT "3. Division"
  280   PRINT "4. Multiplication"
  290   INPUT ''"Make your choice "choice%
  300   ON choice% GOSUB 570,660,750,1030
  310   INPUT '''"Another run",resp$
  320 UNTIL LEFT$(resp$,1)<>"Y"
  330 END
  340  
  350 DEF PROCproblem(s$,result)
  360 n1$=STR$(num1)
  370 n2$=STR$(num2)
  380 PRINT TAB(0,12) SPC(20-LEN(n1$));n1$;
  390 PRINT TAB(0,15) SPC(18-LEN(n2$));s$;n2$;
  400 PRINT TAB(15,16) STRING$(5,"_")
  410 REPEAT
  420   b$=""
  430   P=19
  440   REPEAT
  450     correct=FALSE
  460     a$=GET$
  470     IF ASC(a$)<>13 THEN b$=a$+b$:PRINT TAB(P,19)a$;:P=
P-1
  480   UNTIL ASC(a$)=13
  490   IF VAL(b$)=result THEN PRINT TAB(5,22)"CORRECT - WEL
L DONE":correct=TRUE ELSE PRINT TAB(5,22) "WRONG - TRY AGAIN
"
  500   Z=INKEY(300)
  510   PRINT TAB(5,19) STRING$(20," ")
  520   PRINT TAB(5,20) STRING$(20," ")
  530 UNTIL correct
  540 ENDPROC
  550  
  560  
  570 REM Addition
  580 num1=RND(999)
  590 num2=RND(999)
  600 CLS
  610 PRINT ''"         A D D I T I O N"
  620 PROCproblem("+ ",num1+num2)
  630 RETURN
  640  
  650  
  660 REM Subtraction
  670 num1=RND(999)
  680 num2=RND(num1)
  690 CLS
  700 PRINT ''"         S U B T R A C T I O N"
  710 PROCproblem("- ",num1-num2)
  720 RETURN
  730  
  740  
  750 REM Division
  760 CLS
  770 REPEAT
  780   num2=RND(9)
  790   num1=RND(99)*num2
  800 UNTIL INT(num1/num2)=num1/num2
  810 PRINT ''"     D I V I S I O N"
  820 n1$=STR$(num1)
  830 n2$=STR$(num2)
  840 PRINT TAB(10,12)n2$;CHR$(224);n1$
  850 PRINT TAB(11,13)CHR$(225);STRING$(5,CHR$(226))
  860 REPEAT
  870   b$=""
  880   P=12
  890   REPEAT
  900     correct=FALSE
  910     a$=GET$
  920     IF ASC(a$)<>13 THEN b$=b$+a$:PRINT TAB(P,14)a$;:P=
P+1
  930   UNTIL ASC(a$)=13
  940   IF VAL(b$)=num1/num2 THEN PRINT TAB(5,22)"CORRECT - 
WELL DONE":correct=TRUE ELSE PRINT TAB(5,22) "WRONG - TRY AG
AIN"
  950   Z=INKEY(300)
  960   PRINT TAB(5,17) STRING$(20," ");
  970   PRINT TAB(5,18) STRING$(20," ");
  980   PRINT TAB(5,22) STRING$(20," ");
  990 UNTIL correct
 1000 RETURN
 1010  
 1020  
 1030 REM Multiplication
 1040 CLS
 1050 num1=RND(999)
 1060 num2=RND(9)
 1070 PRINT ''"     M U L T I P L I C A T I O N"
 1080 PROCproblem("* ",num1*num2)
 1090 RETURN


P97 and P98 French and German Tutorial


These are two implementations of a language vocabulary tutorial. In both cases, the cases, the data is in the form of word pairs starting at line 410. The teacher would insert his own vocabulary starting at line 410.

The program gives the student up to three attempts at each word, and after the tutorial is finished, some statistics are returned.

COMMANDS

Key in program(s) and type RUN.
Follow instructions.


  100 REM Program P97 - French Tutorial
  110 DIM results(4)
  120 @%=2
  130 MODE6
  140 PRINT TAB(10,12) "FRENCH TUTORIAL"
  150 X=INKEY(300)
  160 RESTORE
  170  
  180 REPEAT
  190   attempt=1
  200   READ english$,french$
  210   REPEAT
  220     CLS
  230     PRINT ''''''
  240     PRINT "Attempt number "attempt
  250     PRINT ''"English word is "english$
  260     INPUT ''"What is the French "answer$
  270     attempt=attempt+1
  280   UNTIL answer$=french$ OR attempt=4
  290   IF answer$<>french$ THEN results(4)=results(4)+1 ELS
E results(attempt-1)=results(attempt-1)+1
  300 UNTIL english$="end"
  310  
  320 CLS
  330 PRINT '''
  340 PRINT "Number correct at first attempt is " results(1)
  350 PRINT ''"Number correct at second attempt is " results
(2)
  360 PRINT ''"Number correct at third attempt is " results(
3)
  370 PRINT ''"Number of unknown answers" results(4)
  380  
  390  
  400 DATA yes,oui,no,non,end,"fin"

100 REM Program P97 - German Tutorial 110 DIM results(4) 120 @%=2 130 MODE6 140 PRINT TAB(10,12) "GERMAN TUTORIAL" 150 X=INKEY(300) 160 RESTORE 170 180 REPEAT 190 attempt=1 200 READ english$,german$ 210 REPEAT 220 CLS 230 PRINT '''''' 240 PRINT "Attempt number "attempt 250 PRINT ''"English word is "english$ 260 INPUT ''"What is the German "answer$ 270 attempt=attempt+1 280 UNTIL answer$=german$ OR attempt=4 290 IF answer$<>german$ THEN results(4)=results(4)+1 ELS E results(attempt-1)=results(attempt-1)+1 300 UNTIL english$="end" 310 320 CLS 330 PRINT ''' 340 PRINT "Number correct at first attempt is " results(1) 350 PRINT ''"Number correct at second attempt is " results (2) 360 PRINT ''"Number correct at third attempt is " results( 3) 370 PRINT ''"Number of unknown answers" results(4) 380 390 400 DATA yes,ja,no,nein,end,"Ende"


P99 Spelling


This program can be used as a spelling aid for young children. The instructions for using the program are included with it.

The idea of this program is to give a positive feedback to the pupil by making a game out of spelling. The teacher can change the vocabulary by replacing the data at line 960. If more than six words are required, then change line 370.

This program could be developed as a teaching package, by including an instruction to teacher section, and a report section.

COMMANDS

Key in program and type RUN.
Enter difficulty (1-9), 1 is hardest.
Note word when it appears.
Use key <SHIFT> to move gun left.
Use key <DELETE> to move gun right.
Use key Space to fire.


  100 REM Program P99 - Spelling
  110 MODE 6
  120 PRINT '''"This program can be used as a spelling"
  130 PRINT "aid for young children. The user will"
  140 PRINT "see the word for 6 seconds then he or"
  150 PRINT "she has to shoot the letters of the"
  160 PRINT "word from an alphabet at the top of the"
  170 PRINT "screen. If the word is spelled"
  180 PRINT "correctly a spaceship will cross the"
  190 PRINT "screen, to be shot down by the user."
  200 PRINT ''"Points are scored for each correct"
  210 PRINT "letter, and for shooting down the"
  220 PRINT "spaceship."
  230 INPUT ''"Enter difficulty (1 to 9)" d
  240 z=INKEY(100)
  250  
  260 MODE 4
  270 @%=4
  280 VDU 19,0,4,0,0,0
  290 VDU 23,224,0,60,126,171,255,126,36,36
  300 VDU 23,225,24,24,24,24,24,255,255,255
  310 VDU 23,226,24,24,24,24,24,24,24,24
  320 VDU 23;8202;0;0;0
  330 PRINT "       abcdefghijklmnopqrstuvwxyz"
  340 PRINT TAB(16,30) "SCORE-"
  350 X=20:Y=d*3
  360  
  370 FOR K=1 TO 6
  380   READ word$
  390   PRINT TAB(1,16)word$
  400   z=INKEY(600)
  410   PRINT TAB(1,16) STRING$(40," ")
  420   PRINT TAB(X,Y) CHR$(225);
  430   flag=TRUE
  440   REPEAT
  450     DX=INKEY(-1)-INKEY(-90)
  460     PRINT TAB(X,Y)" ";
  470     X=ABS((X+DX) MOD 39)
  480     PRINT TAB(X,Y) CHR$(225);
  490     IF (32=INKEY(10)) THEN PROCfire(X)
  500   UNTIL LEN(word$)=0
  510   IF flag=TRUE THEN PROCship
  520 NEXT K
  530 END
  540  
  550 DEF PROCfire(X)
  560 FOR I=Y-2 TO 1 STEP -1
  570   PRINT TAB(X,I)CHR$(226);
  580   PRINT TAB(X,I+1) " ";
  590 NEXT I
  600 PRINT TAB(X,I+1) " ";
  610 temp=ASC(LEFT$(word$,1)):word$=MID$(word$,2)
  620 IF temp=91+X THEN PROChit(2) ELSE PROCmiss
  630 ENDPROC
  640  
  650 DEF PROChit(s)
  660 score%=score%+s
  670 VDU 19,0,9,0,0,0
  680 SOUND 1,-15,53,30
  690 z=INKEY(150)
  700 VDU 19,0,4,0,0,0
  710 PRINT TAB(24,30)score%
  720 ENDPROC
  730  
  740 DEF PROCmiss
  750 SOUND 0,-15,44,10
  760 flag=FALSE
  770 ENDPROC
  780  
  790 DEF PROCship
  800 Z=0
  810 REPEAT
  820   Z=Z+1
  830   PRINT TAB(Z,2) CHR$(224);
  840   PRINT TAB(Z-1,2) " ";
  850 UNTIL Z=39 OR 32=INKEY(10)
  860 IF Z=39 ENDPROC
  870 FOR I=Y-2 TO 2 STEP -1
  880   PRINT TAB(X,I) CHR$(226);
  890   PRINT TAB(X,I+1) " ";
  900 NEXT I
  910 PRINT TAB(X,I+1) " ";
  920 IF X=Z THEN PROChit(10) ELSE REPEAT Z=Z+1:PRINT TAB(Z,
2) CHR$(224);TAB(Z-1,2) " ";:q=INKEY(10):UNTIL Z=40
  930 PRINT TAB(Z,2) " ";
  940 ENDPROC
  950  
  960 DATA man,car,police,computer,bus,cat


P100 Counting


This is a program which could have some use in the first years of primary education. It displays a number of monsters on the screen, and the user is required to count the monsters and press the appropriate numeric key.

Only the numbers one through nine are used by the program, the return key is not used.

The program can be used to keep five-year-olds quiet for a little while.

COMMANDS

Key in program and type RUN.
Count the monsters and press the correct numeric key.


  100 REM Program P100 - Counting
  110 ENVELOPE 1,25,16,12,8,1,1,1,126,0,0,-126,126,126
  120 DIMX(10),Y(10)
  130 count=RND(9)
  140 MODE5
  150 *FX9,10
  160 *FX10,10
  170 *FX 11,0
  180 VDU 23,224,24,60,90,126,36,90,66,129
  190 VDU 19,0,7;0;19,3,0;0;
  200 COLOUR 1
  210  
  220 X(1)=RND(19):Y(1)=RND(25)
  230 FOR I=2 TO count
  240   X(I)=RND(19):Y(I)=RND(25)
  250   FOR J=1 TO I-1
  260     IF X(I)=X(J) AND Y(I)=Y(J) THEN I=I-1
  270   NEXT J
  280 NEXT I
  290  
  300 FOR I=1 TO count
  310   PRINT TAB(X(I),Y(I)) CHR$(224)
  320 NEXT I
  330  
  340 REPEAT
  350   flag=-1
  360   PRINT TAB(0,28);
  370   PRINT "How many monsters";
  380   ans$=GET$
  390   PRINT CHR$(11);SPC(26);CHR$(11);
  400   ans=VAL(ans$)
  410   IF ans=count THEN PROCcorrect ELSE SOUND 0,-15,4,20:
flag=0
  420 UNTIL flag=-1
  430  
  440 RUN
  450 DEF PROCcorrect
  460 VDU 19,0,13;0;
  470 SOUND 1,1,53,100
  480 X=INKEY(450)
  490 VDU 19,0,7;0;
  500 ENDPROC