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

  1. %INCLUDE HEADER
  2. REM ************************DISTANCE*************************
  3.          REM METRIC CONVERSIONS OF DISTANCE
  4. DRILL.NAME$="Metric Conversions of Distance"
  5.          PRINT
  6.          B=9
  7.          DATA .0254, "INCHES","MILLIMETERS",.3048,"FEET","CENTIMETERS"
  8.          DATA .9144,"YARDS","METERS",1609.344,"MILES","KILOMETERS"
  9.          P=9
  10. D=4
  11.          PRINT
  12.          PRINT "OK, ";N$;".  Let's practice converting some english units of"
  13.          PRINT "distance to their metric equivalents.  I will give you a problem"
  14.          PRINT "and you give me your answer, which I will check.  If you need"
  15.          PRINT "some help, enter a -1 instead of an answer."
  16.     PRINT "Your answer should be to the nearest thousandth"
  17.          PRINT
  18.          C=0
  19.          N=0
  20.          I=0
  21. 280 GOSUB 680
  22.          GOSUB 1040
  23.          IF A$ <> "C" THEN 340
  24.          C=C + 1
  25.          I = I + 1
  26.          GOTO 420
  27. 340  I = 0
  28.          PRINT "  TRY AGAIN."
  29.          GOSUB 1040
  30.          IF A$ = "C" THEN 420
  31.          PRINT "  TRY ONE MORE TIME."
  32.          GOSUB 1040
  33.          IF A$="C" THEN 420
  34.          PRINT "  THE ANSWER IS ";A
  35. 420  IF I > P * C/N THEN 1000.2
  36.          IF N < 7 THEN 280
  37.          IF C/N >= .7 THEN 280
  38.          IF D = 1 THEN 280
  39.          D = D - 1
  40.          IF C/N >= .5 THEN 280
  41.          D = 1
  42.          GOTO 280
  43.          IF C <> N THEN 1000.2
  44.          D = D + 1
  45. 680      PRINT
  46.          N = N + 1
  47. 670      R = FNR(4)
  48.          R2 = FNR(4)
  49.          R3 = FNR(D^2) + 1
  50.          GOSUB 800
  51.          RESTORE
  52.          FOR X=1 TO R1
  53.                    READ C, Q$, Q$
  54.          NEXT X
  55.          A=R3*C*10^(R2/2-R2^2/2+3)
  56.     A=INT((A*1000)+.5)/1000
  57.          RETURN
  58. 800      RESTORE
  59.          FOR X = 1 TO R2
  60.                    READ C, E$, M$
  61.          NEXT X
  62.          RESTORE
  63.          FOR X=1 TO R1
  64.                    READ C, E$, Q$
  65.          NEXT X
  66. 880      PRINT "HOW MANY ";M$;" ARE IN";R3;E$;
  67.          RETURN
  68. 900      PRINT
  69.          PRINT "MULTIPLY TO CONVERT"
  70.          PRINT "FROM         TO              BY"
  71.          PRINT "----         -----           --"
  72.          PRINT
  73.          PRINT "INCHES       METERS        .0254"
  74.          PRINT "FEET         METERS        .3048"
  75.          PRINT "YARDS        METERS        .9144"
  76.          PRINT "MILES        METERS      1609.3440"
  77.          PRINT "METERS       MILLIMETERS  1000.0000"
  78.          PRINT "METERS       CENTIMETERS  100.0000"
  79.          PRINT "METERS       KILOMETERS     .0010"
  80.          PRINT
  81.          RETURN
  82. 1040     INPUT LINE X$
  83. RANDOMIZE
  84. IF X$="QUIT" THEN GOTO 1000.2
  85. X=VAL(X$)
  86.          IF X < 0 THEN 1090
  87.          IF ABS(X-A) > .005 THEN 1140
  88.          A$ = "C"
  89.          RETURN
  90. 1090 GOSUB 900
  91.          PRINT
  92.          PRINT "HERE IS YOUR PROBLEM AGAIN:"
  93.          GOSUB 800
  94.          GOTO 1040
  95. 1140 PRINT "NOT CORRECT. ";
  96.          I = 0
  97.          A$ = "I"
  98.          RETURN
  99. %INCLUDE GRADE
  100.  
  101.          END
  102.  
  103.