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

  1. %INCLUDE HEADER
  2. REM ****************DEC1
  3.  
  4. REM THIS DRILL IS FORM ROUNDING DECIMALS
  5. DRILL.NAME$="Rounding of Decimals"
  6.          PRINT
  7.          B=16
  8.          P=9
  9.          D=4
  10.          PRINT
  11.          PRINT "OK ";N$;". Now let's practice rounding decimal numbers.  I'll"
  12.          PRINT "give you a number which must be rounded using the 'round-up'"
  13.          PRINT "method.  Please read each question carefully, and then give me"
  14.          PRINT "the correct answer."
  15.          PRINT
  16.          C=0
  17.          I=0
  18.          N=0
  19. 220 GOSUB 640
  20.          GOSUB 940
  21.          IF A$<>"C" THEN GOTO 280
  22. 250 C=C+1
  23.          I=I+1
  24.          GOTO 360
  25.          I=0
  26. 280 PRINT " TRY AGAIN."
  27.          GOSUB 940
  28.          IF A$="C" THEN GOTO 360
  29. 380 PRINT "  TRY ONE MORE TIME"
  30.          GOSUB 940
  31.          IF A$="C" THEN GOTO 360
  32. 410 PRINT "  THE ANSWER IS   "; A
  33. 360 IF I>P*C/N THEN GOTO 1000.2
  34.          IF N<7 THEN GOTO 220
  35.          IF C/N >= .7 THEN GOTO 220
  36.          IF D=1 THEN GOTO 220
  37.          D=D-1
  38.          IF C/N >= .5 THEN GOTO 220
  39.          D=1
  40.          GOTO 220
  41.          PRINT
  42.          IF C<>N THEN GOTO 1000.2
  43.          D=D+1
  44. 640 N=N+1
  45.          A=INT(RND*10^(D+2))/10^(D+2)
  46.          IF A < .1 THEN 640
  47. R = INT(RND * (D+2))
  48.          A=A*10^R
  49.          IF A < .1 THEN 640
  50.          IF D < 5 THEN 720
  51.          X=4
  52.          GOTO 940
  53.  720 X=D
  54. 730    Z=INT((RND-.4)*10)
  55.     IF Z>4 THEN 730
  56.     IF Z<0 THEN 730
  57.          IF Z >= R THEN 730
  58.          IF Z <= R - D - 2 THEN 730
  59.          PRINT
  60.          PRINT "WHAT IS ";A;"ROUNDED TO THE NEAREST ";
  61.          IF Z <> 0 THEN 810
  62.          PRINT "WHOLE NUMBER";
  63.     LET A=INT(A+.5)
  64.     RETURN
  65.  
  66. 810 IF ABS(Z)<>1 THEN 840
  67.          PRINT "TEN";
  68.          GOTO 900
  69.  
  70. 840 IF ABS(Z) <> 2 THEN 870
  71.          PRINT "HUNDRED";
  72.          GOTO 900
  73.  
  74. 870 IF ABS(Z) <> 2 THEN 890
  75.          PRINT "TEN ";
  76. 890      PRINT "THOUSAND";
  77.          PRINT "TH";
  78. 900      IF Z > 0 THEN 920
  79. 920   A=INT((A*10^Z)+.5)/(10^Z)
  80. RETURN
  81. 940      INPUT X$
  82. RANDOMIZE
  83. IF X$="QUIT" THEN GOTO 1000.2
  84. X=VAL(X$)
  85.          IF X <> A THEN 980
  86.          A$ = "C"
  87. RETURN
  88.  
  89. 980 PRINT "NOT CORRECT. ";
  90.          A$="I"
  91. RETURN
  92.  
  93. %INCLUDE GRADE
  94.  
  95.          END
  96.