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

  1. %INCLUDE HEADER
  2. REM *******************DEC6********************
  3.  
  4.  
  5. DRILL.NAME$="Division of Decimal Numbers"
  6.          B=21
  7.          DEF FNT(X)=X-INT(X/100)*100+INT(X/100)*60
  8.          P=9
  9.          D=4
  10.          PRINT "OK, ";N$;", Let's practice dividing decimal numbers.  If"
  11.          PRINT "you have difficulty with a problem, enter"
  12.          PRINT "-1 instead of an answer, and I'll try to give you"
  13.          PRINT "some assistance."
  14.  
  15.          PRINT
  16.          C=0
  17.          I=0
  18.          N=0
  19. 230 GOSUB 640
  20.          GOSUB 860
  21.          IF A$<>"C" THEN GOTO 290
  22. 360 C=C+1
  23.          I=I+1
  24.          GOTO 370
  25.          I=0
  26. 290 PRINT " TRY AGAIN."
  27.          GOSUB 860
  28.          IF A$="C" THEN GOTO 370
  29. 380 PRINT "  TRY ONE MORE TIME"
  30.          GOSUB 860
  31.          IF A$="C" THEN GOTO 370
  32. 410 PRINT "  THE ANSWER IS  ";A
  33. 370 IF I>P*C/N THEN GOTO 1000.2
  34.          IF N<7 THEN GOTO 230
  35.          IF C/N >=.7 THEN GOTO 230
  36.          IF D=1 THEN GOTO 230
  37.          D=D-1
  38.          IF C/N >=.5 THEN GOTO 230
  39.          D=1
  40.          GOTO 230
  41.          IF C<>N THEN GOTO 1000.2
  42.          D=D+1
  43. 640     N=N+1
  44.          PRINT
  45. 660     X=D-1
  46.          Y=X
  47.          GOSUB 1200
  48.          A=X
  49.          IF A < .1 THEN GOTO 660
  50. 710     X=D + 1
  51.          Y=D
  52.          GOSUB 1200
  53.          A1=X
  54.          IF A1 < .1 THEN GOTO 710
  55.          IF A1=0 THEN GOTO 710
  56.          IF A * A1 < .1 THEN GOTO 660
  57.          PRINT " ",A * A1;"/";A1;"=";
  58.      FOR J=1 TO 5
  59.               X=A1*10^J
  60.               O=J
  61.               IF X <> INT(X) THEN GOTO 840
  62.               J=5
  63. 840     NEXT J
  64. RETURN
  65. 860     INPUT X$
  66. RANDOMIZE
  67. IF X$="QUIT" THEN GOTO 1000.2
  68. X=VAL(X$)
  69.          IF A <> X THEN GOTO 900
  70.          A$="C"
  71. RETURN
  72. 900     IF X=-1 THEN GOTO 950
  73.          PRINT "NOT CORRECT. ";
  74.          I=0
  75.          A$="I"
  76. RETURN
  77. 950     PRINT
  78.          PRINT "WHICH OF THE NUMBER IN THIS PROBLEM IS "
  79.          PRINT "THE DIVISOR";
  80.          INPUT X
  81.          IF X=A1 THEN GOTO 1020
  82.          PRINT "NO, IT'S";A1;
  83.          GOTO 1030
  84. 1020     PRINT "OK";N$
  85. 1030     PRINT ".  NOW HOW MANY PLACES DO I HAVE TO MOVE THE DECIMAL"
  86.          PRINT "TO GET";A1*10^O;
  87. 1050     INPUT X
  88.          IF X=O THEN GOTO 1090
  89.          PRINT "NO - COUNT AGAIN. HOW MANY";
  90.          GOTO 1050
  91. 1090     PRINT "THAT'S RIGHT! ";N$;"NOW IF YOU MOVE THE DECIMAL IN THE DIVIDEND"
  92.          PRINT "THE SAME NUMBER OF PLACES TO THE RIGHT, WHAT NUMBER DO"
  93.          PRINT "YOU GET";
  94.          INPUT X
  95.          IF X=A*A1*10^O THEN GOTO 1160
  96.          PRINT "NO, IT'S ";A*A1*10^O;
  97.          GOTO 1170
  98. 1160     PRINT "THAT'S CORRECT";
  99. 1170     PRINT ". NOW SOLVE YOUR PROBLEM IN THIS FORM:"
  100.          PRINT " ",A*A1*10^O;"/";A1*10^O;"=";
  101.          GOTO 860
  102. 1200     X=FNR(X)
  103.          IF X >=Y THEN GOTO 1230
  104.          X=Y
  105. 1230     X=INT(RND*10^X)/(10^INT(Y*RND + 1))
  106. RETURN
  107. %INCLUDE GRADE
  108.  
  109.          END
  110.  
  111.