home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG037.ARK
/
FRAC2.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
3KB
|
114 lines
%INCLUDE HEADER
REM ***********************FRAC2****************************
PRINT
B=10
P=9
D=4
PRINT
DRILL.NAME$="Subtraction of Fractions"
REM THIS MODULE GIVE DRILL IN THE SUBTRACTION OF FRACTIONS
REM THIS MODULE USES LINE NUMBER FROM 900 THROUGH 1000
PRINT "OK, ";N$;". Now let's practice subtracting fractions. I will"
PRINT "give you two fractions, and you give me their difference in"
PRINT "lowest terms. To do this, enter the numberator first, a comma,"
PRINT "Please separate the two by a '/'"
PRINT "then the denominator of the answer. "
PRINT
C=0
I=0
N=0
210 GOSUB 700
GOSUB 870
IF A$<>"C" THEN GOTO 270
240 C=C+1
I=I+1
GOTO 430
270 PRINT " TRY AGAIN."
IF A$<>"L" THEN GOTO 360
GOSUB 870
IF A$="C" THEN GOTO 240
IF A$<>"L" THEN GOTO 380
PRINT " ONE MORE TRY."
GOSUB 870
IF A$="C" THEN GOTO 240
GOTO 410
360 GOSUB 870
IF A$="C" THEN GOTO 430
380 PRINT " TRY ONE MORE TIME"
GOSUB 870
IF A$="C" THEN GOTO 430
410 PRINT " THE ANSWER IS ";U;"/";L
I=0
430 IF I>P*C/N THEN GOTO 1000.2
IF N<7 THEN GOTO 210
IF C/N >= .7 THEN GOTO 210
IF D=1 THEN GOTO 210
D=D-1
IF C/N >= .5 THEN GOTO 210
D=1
GOTO 210
IF C<>N THEN GOTO 1000.2
D=D+1
700 N=N+1
U=INT(3*D*RND+1)
L=INT(3*D*RND+1)
Z1=INT(3*D*RND+1)
Z2=INT(3*D*RND+1)
IF U/L>Z1/Z2 THEN 820
X=U
U=Z1
Z1=X
X=L
L=Z2
Z2=X
820 PRINT
PRINT " ","(";U;"/";L;") - (";Z1;"/";Z2;") = ";
U=U*Z2-Z1*L
L=L*Z2
RETURN
870 INPUT LINE Z$
IF Z$="QUIT" THEN GOTO 1000.2
Z1=VAL(LEFT$(Z$,MATCH("/",Z$,1)))
Z2=VAL(MID$(Z$,MATCH("/",Z$,1)+1,LEN(Z$)))
W1=U
W2=L
GOSUB 1130
U=W1
L=W2
IF Z1<>U THEN GOTO 990
IF Z2=0 THEN GOTO 1090
IF Z2<>L THEN GOTO 990
PRINT U;"/";L;" IS CORRECT."
A$="C"
RETURN
990 W1=Z1
W2=Z2
GOSUB 1130
Z1=W1
Z2=W2
IF Z1<>U THEN GOTO 1090
IF Z2<>L THEN GOTO 1090
PRINT "Not in lowest terms. ";
A$="L"
RETURN
1090 PRINT "Not correct. ";
I=0
A$="I"
RETURN
1130 K1=W1
K2=W2
1150 J=INT(W1/W2)
R=W1-J*W2
IF R=0 THEN GOTO 1210
W1=W2
W2=R
GOTO 1150
1210 R=W2
W1=K1/R
W2=K2/R
RETURN
%INCLUDE GRADE
END