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

  1. %INCLUDE HEADER
  2. REM **********************DEC 4
  3.  
  4. DRILL.NAME$="Addition of Decimal Numbers"
  5. DIM A(8)
  6.          DEF FNT(X)=X-INT(X/100)*100+INT(X/100)*60
  7.          P=9
  8.          D=4
  9. PRINT "OK, ";N$;", LET'S PRACTICE ADDING DECIMAL NUMBERS.  IF YOU HAVE"
  10. PRINT "DIFFICULTY WITH A PROBLEM, ENTER -1 INSTEAD OF AN"
  11. PRINT "ANSWER, AND I'LL TRY TO GIVE YOU SOME ASSISTANCE."
  12.          PRINT
  13.          PRINT
  14.          C=0
  15.          I=0
  16.          N=0
  17. 230 GOSUB 640
  18.          GOSUB 890
  19.          IF A$<>"C" THEN GOTO 290
  20. 360 C=C+1
  21.          C=C+1
  22.          I=I+1
  23.          GOTO 370
  24.          I=0
  25. 290 PRINT " TRY AGAIN."
  26.          GOSUB 890
  27.          IF A$="C" THEN GOTO 370
  28. 380 PRINT "  TRY ONE MORE TIME"
  29.          GOSUB 890
  30.          IF A$="C" THEN GOTO 370
  31. 410 PRINT "  THE ANSWER IS  ";A
  32. 370 IF I>P*C/N THEN GOTO 1000.2
  33.          IF N<7 THEN GOTO 230
  34.          IF C/N >= .7 THEN GOTO 230
  35.          IF D=1 THEN GOTO 230
  36.          D=D-1
  37.          IF C/N >= .5 THEN GOTO 230
  38.          D=1
  39.          GOTO 230
  40.          IF C<>N THEN GOTO 1000.2
  41.          D=D+1
  42. 640     N=N+1
  43.          FOR J=1 TO 6
  44.               A(J)=0
  45.          NEXT J
  46. 680     X=D+1
  47.          GOSUB 1180
  48.          A=X
  49.          IF A < .1 THEN GOTO 680
  50.          A(1)=A
  51.          PRINT
  52.          Q=FNR(D) + 1
  53.          FOR J=2 TO Q
  54.               X=D+1
  55.               GOSUB 1180
  56.               A1=X
  57.               IF A1 < .1 THEN GOTO 680
  58.               A(J)=A1
  59.               A=A+A1
  60.          NEXT J
  61. 830     PRINT "               ";A(1);
  62.          FOR J=2 TO Q
  63.               PRINT "+";A(J);
  64.          NEXT J
  65.          PRINT "= ";
  66. RETURN
  67. 890    INPUT X$
  68. RANDOMIZE
  69. IF X$="QUIT" THEN GOTO 1000.2
  70. X=VAL(X$)
  71.          IF A <> X THEN 930
  72.          A$="C"
  73. RETURN
  74. 930     IF X = -1 THEN 980
  75.          PRINT "NOT CORRECT. ";
  76.          I=0
  77.          A$="I"
  78. RETURN
  79. 980     PRINT
  80.          PRINT "CHECK TO MAKE SURE THAT ALL THE DECIMAL POINTS ARE IN LINE."
  81.          PRINT "FOR INSTANCE, IF YOUR PROBLEM WAS TO ADD"
  82.          PRINT "4.56 + 165.8 + 7 + 14.001, YOU SHOULD WRITE"
  83.          PRINT "LIKE THIS:"
  84.          PRINT
  85.          PRINT "                     4.560"
  86.          PRINT "                   165.800"
  87.          PRINT "                     7.000"
  88.          PRINT "                    14.001"
  89.          PRINT "                  --------"
  90.          PRINT "                   191.361"
  91.          PRINT
  92.          PRINT "IF YOUR PROBLEM LOOKS LIKE THIS, YOU PROBABLY HAVE BEEN MAKING"
  93.          PRINT "MISTAKES IN ADDITION.  WORK YOUR PROBLEM CAREFULLY NOW, AND"
  94.          PRINT "I'LL CHECK YOUR ANSWERS."
  95.          X=0
  96.          PRINT "HERE IT IS AGAIN:"
  97.          GOSUB 830
  98.          GOTO  890
  99. 1180     X=FNR(X)
  100.          X=INT(RND*10^X)/10^INT(FNR(X))
  101.          RETURN
  102.  
  103. %INCLUDE GRADE
  104.  
  105.          END
  106.  
  107.