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 / FRAC4.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  2KB  |  105 lines

  1. %INCLUDE HEADER
  2. REM ********************FRAC4************************
  3. PRINT
  4. B=13
  5. P=9
  6. D=4
  7. DRILL.NAME$="Division of Fractions"
  8. PRINT "OK, ";N$;". NOW LET'S PRACTICE DIVIDING fractions.  I will"
  9. print "give you two fractions and you give me their quotient in"
  10. print "lowest terms.  To do this, enter the numerator first, '/',"
  11. print "then the denominator of the answer. "
  12. PRINT
  13. C=0
  14. I=0
  15. N=0
  16. 210 GOSUB 700
  17. GOSUB 800
  18. IF A$<>"C" THEN GOTO 270
  19. 240 C=C+1
  20. I=I+1
  21. GOTO 430
  22. 270 PRINT " TRY AGAIN."
  23. IF A$<>"L" THEN GOTO 360
  24. GOSUB 800
  25. IF A$="C" THEN GOTO 240
  26. IF A$<>"L" THEN GOTO 380
  27. PRINT " ONE MORE TRY."
  28. GOSUB 800
  29. IF A$="C" THEN GOTO 240
  30. GOTO 410
  31. 360 GOSUB 800
  32. IF A$="C" THEN GOTO 430
  33. 380 PRINT "  TRY ONE MORE TIME"
  34. GOSUB 800
  35. IF A$="C" THEN GOTO 430
  36. 410 PRINT "  THE ANSWER IS ";U;"/";L
  37. I=0
  38. 430 IF I>P*C/N THEN GOTO 1000.2
  39. IF N<7 THEN GOTO 210
  40. IF C/N >= .7 THEN GOTO 210
  41. IF D=1 THEN GOTO 210
  42. D=D-1
  43. IF C/N >= .5 THEN GOTO 210
  44. D=1
  45. GOTO 210
  46. PRINT
  47. IF C<>N THEN GOTO 1000.2
  48. D=D+1
  49. 700 N=N+1
  50. U=INT(3*D*RND+1)
  51. L=INT(3*D*RND+1)
  52. Z1=INT(3*D*RND+1)
  53. Z2=INT(3*D*RND+1)
  54.       PRINT
  55. PRINT " ","(";U;"/";L;") / (";Z1;"/";Z2;") =";
  56.          U=U*Z1
  57. L=L*Z2
  58. RETURN
  59. 800      INPUT LINE Z$
  60. RANDOMIZE
  61. IF Z$="QUIT" THEN GOTO 1000.2
  62. Z1=VAL(LEFT$(Z$,MATCH("/",Z$,1)))
  63. Z2=VAL(MID$(Z$,MATCH("/",Z$,1)+1,LEN(Z$)))
  64.          W1=U
  65.          W2=L
  66.          GOSUB 1060
  67.          U=W1
  68.          L=W2
  69.          IF Z1<>U THEN GOTO 920
  70.          IF Z2=0 THEN GOTO 1020
  71.          IF Z2<>L THEN GOTO 920
  72.          PRINT U;"/";L;" IS CORRECT."
  73.          A$="C"
  74. RETURN
  75. 920      W1=Z1
  76.          W2=Z2
  77.          GOSUB 1060
  78.          Z1=W1
  79.          Z2=W2
  80.          IF Z1<>U THEN GOTO 1020
  81.          IF Z2<>L THEN GOTO 1020
  82.          PRINT "Not in lowest terms. ";
  83.          A$="L"
  84. RETURN
  85. 1020     PRINT "Not correct. ";
  86.          I=0
  87.          A$="I"
  88. RETURN
  89. 1060     K1=W1
  90.          K2=W2
  91. 1080     J=INT(W1/W2)
  92.          R=W1-J*W2
  93.          IF R=0 THEN GOTO 1140
  94.          W1=W2
  95.          W2=R
  96.          GOTO 1080
  97. 1140     R=W2
  98.          W1=K1/R
  99.          W2=K2/R
  100. RETURN
  101. %INCLUDE GRADE
  102.  
  103.          END
  104.  
  105.