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 / FRACTION.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  3KB  |  141 lines

  1. %INCLUDE HEADER
  2. REM ********************FRACTION*************************
  3.          REM SIMPLE EQUATIONS WITH FRACTIONS
  4. DRILL.NAME$="Simple Equiations with Fractions"
  5.          PRINT
  6.          B=5
  7.          P=9
  8.          D=4
  9.          PRINT
  10.          PRINT "OK, ";N$;". LET'S PRACTICE FINDING SOME MISSING NUMBERS"
  11.          PRINT "IN SOME SIMPLE EQUATIONS WHICH ARE COMPOSED OF FRACTIONS."
  12.          PRINT "I'LL GIVE YOU A PROBLEM, YOU GIVE ME THE ANSWER, AND I'LL"
  13.          PRINT "CHECK TO SEE IF YOUR ANSWER IS CORRECT."
  14.          PRINT
  15.          PRINT "TO ANSWER, PLEASE ENTER THE NUMERATOR FIRST, '/', AND THEN"
  16.          PRINT "THE DENOMINATOR OF YOUR RESULT."
  17.          PRINT
  18.          C=0
  19.          N=0
  20.          I=0
  21. 270 GOSUB 670
  22.          GOSUB 1150
  23.          IF A$ <> "C" THEN 330
  24.          C=C + 1
  25.          I = I + 1
  26.          GOTO 400
  27. 330      PRINT "  TRY AGAIN."
  28.          GOSUB 1150
  29.          IF A$ = "C" THEN 400
  30.          PRINT "  TRY ONE MORE TIME."
  31.          GOSUB 1150
  32.          IF A$="C" THEN 400
  33.          PRINT "  THE ANSWER IS ";U;"/";V
  34. 400  IF I > P * C/N THEN 1000.2
  35.          IF N < 7 THEN 270
  36.          IF C/N >= .7 THEN 270
  37.          IF D = 1 THEN 270
  38.          D = D - 1
  39.          IF C/N >= .5 THEN 270
  40.          D = 1
  41.          GOTO 270
  42.          IF C <> N THEN 1000.2
  43.          D = D + 1
  44. 670      PRINT
  45.          N = N + 1
  46.          U1 = FNR(D)
  47.          U2 = FNR(D)
  48.          V1 = FNR(D)
  49.          V2 = FNR(D)
  50.          A = INT(4 * RND + 1)
  51.          PRINT
  52.          IF A = 1 THEN 770
  53.          IF A = 2 THEN 830
  54.          GOTO 920
  55. 770      U = U2
  56.          V = V2
  57.          A$ = "+"
  58.          U2 = U1 * V2 + U2 * V1
  59.          V2 = V1 * V2
  60.          GOTO 880
  61. 830      U = U2 * V1
  62.          V = U1 * V2
  63.          A$="*"
  64.          A = INT(2 * RND + 1)
  65.          IF A = 2 THEN 900
  66. 880      PRINT " ","(";U1;"/";V1;") ";A$;" (?) =";U2;"/";V2;
  67.          GOTO 1140
  68. 900 PRINT " ","(?) ";A$;" (";U1;"/";V1;") =";U2;"/";V2;
  69.          GOTO 1140
  70. 920      B = INT(2 * RND + 1)
  71.          IF B = 2 THEN 1050
  72.          IF A = 4 THEN 1010
  73.          U = U1
  74.          V = V1
  75.          A$="-"
  76.          U1 = U1 * V2 + U2 * V1
  77.          V1 = V1 * V2
  78.          GOTO 880
  79. 1010     U=U1 * V2
  80.          V = U2 * V1
  81.          A$="/"
  82.          GOTO 880
  83. 1050     IF A = 4 THEN 1100
  84.          U = U1 * V2 + U2 * V1
  85.          V = V1 * V2
  86.          A$="-"
  87.          GOTO 900
  88. 1100     U = U1 * U2
  89.          V = V1 * V2
  90.          A$="/"
  91.          GOTO 900
  92. 1140 RETURN
  93. 1150     Z1=1
  94.          Z2=2
  95.          INPUT "      WHAT IS ";LINE Z$
  96.          RANDOMIZE
  97. IF Z$="QUIT" THEN GOTO 1000.2
  98. Z1=VAL(LEFT$(Z$,MATCH("/",Z$,1)))
  99. Z2=VAL(MID$(Z$,MATCH("/",Z$,1)+1,LEN(Z$)))
  100.          W1=U
  101.          W2=V
  102.          GOSUB 1440
  103.          U=W1
  104.          V=W2
  105.          IF Z1 <> U THEN 1300
  106.          IF Z2=0 THEN 1400
  107.          IF Z2 <> V THEN 1300
  108.          PRINT U;"/";V;" IS CORRECT."
  109.          A$="C"
  110. RETURN
  111. 1300     W1=Z1
  112.          W2=Z2
  113.          GOSUB 1440
  114.          Z1=W1
  115.          Z2=W2
  116.          IF Z1 <> U THEN 1400
  117.          IF Z2 <> V THEN 1400
  118.          PRINT "THAT ANSWER IS NOT IN LOWEST TERMS. ";
  119.          A$="L"
  120. RETURN
  121. 1400     PRINT "NOT CORRECT. ";
  122.          I=0
  123.          A$="N"
  124. 1430 RETURN
  125. 1440     K1=W1
  126. K2=W2
  127. 1460     J=INT(W1/W2)
  128.          R=W1-J*W2
  129.          IF R=0 THEN 1520
  130.          W1=W2
  131.          W2=R
  132.          GOTO 1460
  133. 1520     R=W2
  134.          W1=K1/R
  135.          W2=K2/R
  136. RETURN
  137. %INCLUDE GRADE
  138.  
  139.          END
  140.  
  141.