home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…ids, Adults, Educational / RocelcoInc-ExploreTheWorldOfSoftware-KidsAdultsEducational-Vol2-Shareware.iso / educate / disk053 / savings.bas < prev    next >
Encoding:
BASIC Source File  |  1983-10-26  |  6.1 KB  |  166 lines

  1. 1  REM  SAVINGS & LOAN
  2. 2  REM
  3. 3  REM  CALCULATES PRESENT & FUTURE
  4. 4  REM  SAVINGS, ANNUITY OR LUMP SUM
  5. 5  REM      
  6. 6  REM  
  7. 7  REM  ADAPTED FROM APPLE SOFTSWAP
  8. 8  REM  
  9. 9  REM        
  10. 10  REM 
  11. 11  REM  ***********************
  12. 13  REM  *                     *
  13. 14  REM  *  SAN MATEO COUNTY   *
  14. 15  REM  * OFFICE OF EDUCATION *
  15. 16  REM  *         &           *
  16. 17  REM  *   COMPUTER-USING    *
  17. 18  REM  *      EDUCATORS      *
  18. 19  REM  *                     *
  19. 20  REM  *      SOFTSWAP       *
  20. 21  REM  *                     *
  21. 22  REM  *   333 MAIN STREET   *
  22. 23  REM  *     REDWOOD CITY    *
  23. 24  REM  *       CA 94063      *
  24. 25  REM  *    (415)363-5472    *
  25. 26  REM  *                     *
  26. 28  REM  *                     *
  27. 29  REM  ***********************
  28. 30  REM  *PROGRAM MAY BE COPIED*
  29. 31  REM  *FOR EDUCATIONAL USE &*
  30. 32  REM  *MAY NOT BE SOLD.COPY-*
  31. 33  REM  *RIGHT 1983 CUE,INC   *
  32. 34  REM  ***********************
  33. 100  CLEAR :SCREEN 0,1: WIDTH 40 : KEY OFF : COLOR 14,0,14:CLS
  34. 110  LOCATE  8
  35. 120  PRINT "***************************************"
  36. 130  PRINT "*                                     *"
  37. 140  PRINT "*    S A V I N G S   &   L O A N S    *"
  38. 150  PRINT "*                                     *"
  39. 160  PRINT "***************************************"
  40. 170 GOSUB 200
  41. 180 GOTO 240
  42. 190 REM  SUBROUTINE FOR RETURN & ESCAPE
  43. 200  LOCATE  23, 6: PRINT "PRESS <RETURN> TO CONTINUE...": LOCATE , 6: PRINT "OR <ESC> TO END THIS PROGRAM=>";
  44. 210  A$=INKEY$: IF  A$ = CHR$(27) THEN 1340
  45. 220  IF A$ <  >CHR$(13) THEN 210
  46. 230  RETURN
  47. 240  CLEAR : CLS
  48. 250  LOCATE 3,3: PRINT "** THIS PROGRAM WILL CALCULATE **"
  49. 260  LOCATE 4,3: PRINT "   ---------------------------"
  50. 270  PRINT 
  51. 280  PRINT "1. The PRESENT value of a FUTURE LUMP      SUM payment."
  52. 290  PRINT 
  53. 300  PRINT "2. The PRESENT value of FUTURE equal       annual (ANNUITY) payments."
  54. 310  PRINT
  55. 320  PRINT "3. The FUTURE value of a PRESENT LUMP      SUM, such as from putting $3000 in a    bank now."
  56. 330  PRINT 
  57. 340  PRINT "4. The FUTURE value of equal ANNUITY       payments, such as from putting $1000    in a bank each year for a number of     years."
  58. 350  REM
  59. 360 GOSUB 200
  60. 370  GOSUB 1320
  61. 380  GOSUB 1330
  62. 390 CLS: PRINT : PRINT
  63. 400  LOCATE 4,5: PRINT ;"(Do NOT use a": LOCATE 5,5: PRINT " dollar sign": LOCATE 6,5: PRINT " or commas.)";: LOCATE 3,5: LINE INPUT "Enter the AMOUNT:        ";D$
  64. 410  IF D$ = "" THEN D$ = "R"
  65. 420  IF  ASC (D$) < 48 OR  ASC (D$) > 57 THEN  LOCATE 6,19: PRINT "Try again.": LOCATE 3,28: COLOR 0,0: PRINT "          ": COLOR 14,0: GOTO 400
  66. 430  IF  LEN (D$) > 20 THEN D$ = "R": GOTO 420
  67. 440 D =  VAL (D$)
  68. 450  IF D = 0 THEN D$ = "R": GOTO 420
  69. 460  PRINT 
  70. 470 PRINT : PRINT
  71. 480  LOCATE 8,5: PRINT "Enter the INTEREST RATE: ";: LINE INPUT I$
  72. 490  IF I$ = "" THEN I$ = "R"
  73. 500  IF  ASC (I$) < 48 OR  ASC (I$) > 57 THEN  LOCATE 9,15: PRINT "Try again.": LOCATE 8,29: COLOR 0,0: PRINT "         ": COLOR 14,0: GOTO 480
  74. 510  IF  LEN (I$) > 3 THEN I$ = "R": GOTO 500
  75. 520 I =  VAL (I$)
  76. 530  IF I > 100 THEN I$ = "R": GOTO 500
  77. 540  IF I <  = 0 THEN I$ = "R": GOTO 500
  78. 550  PRINT 
  79. 560  IF I < 1 THEN 580
  80. 570 I = I / 100
  81. 580 PRINT : PRINT
  82. 590  LOCATE 10,5: PRINT "Enter the TIME in YEARS: ";: LINE INPUT N$
  83. 600  IF N$ = "" THEN N$ = "R"
  84. 610  IF  ASC (N$) < 48 OR  ASC (N$) > 57 THEN  PRINT TAB(15);"Try again.": LOCATE 10,29: COLOR 0,0: PRINT "          ": COLOR 14,0: GOTO 590
  85. 620  IF  LEN (N$) > 3 THEN N$ = "R": GOTO 610
  86. 630 N =  VAL (N$)
  87. 640  IF N = 0 THEN N$ = "R": GOTO 610
  88. 650  IF N > 99 THEN N$ = "R": GOTO 610
  89. 660  PRINT 
  90. 670  LOCATE  22,3: PRINT "Press <RETURN> after your answer!"
  91. 680  LOCATE 12, 5: LINE INPUT "LUMP SUM or ANNUITY: <L/A>";Q$
  92. 690  PRINT : PRINT 
  93. 700  IF Q$ = "L" OR Q$="l" THEN  GOTO 740
  94. 710  IF Q$ = "A" OR Q$="a" THEN  GOTO 980
  95. 720  GOSUB 1270
  96. 730  GOTO 450
  97. 740 REM
  98. 750  LOCATE  22,3: PRINT "Press <RETURN> after your answer!"
  99. 760  LOCATE 15,15: PRINT "<F/P>": LOCATE 14,5: LINE INPUT "FUTURE or PRESENT value:";Q$
  100. 770  PRINT : PRINT 
  101. 780  IF Q$ = "P" OR Q$="p" THEN  GOTO 820
  102. 790  IF Q$ = "F" OR Q$="f" THEN  GOTO 900
  103. 800  GOSUB 1270
  104. 810  GOTO 740
  105. 820   CLS : LOCATE  5
  106. 830 B = D * (1 / ((1 + I) ^ N))
  107. 840 B =  INT (B + .5)
  108. 850  GOSUB 1330
  109. 860 LOCATE 5,5: PRINT "PRESENT VALUE of $";D
  110. 870  LOCATE 7,5: PRINT "in ";N;" years at ";I * 100;"%"
  111. 880  LOCATE 9,5: PRINT "              is $";B
  112. 890  GOTO 1200
  113. 900  CLS
  114. 910 B = D * ((1 + I) ^ N)
  115. 920 B =  INT (B + .5)
  116. 930  GOSUB 1330
  117. 940  LOCATE 5,5: PRINT "FUTURE VALUE of $";D
  118. 950  LOCATE 7,5: PRINT "in ";N;" years at ";I * 100;"%"
  119. 960  LOCATE 9,5: PRINT "             is $";B
  120. 970  GOTO 1200
  121. 980 REM
  122. 990  LOCATE 15,15: PRINT "<F/P>": LOCATE 14,5: LINE INPUT "FUTURE or PRESENT value: ";Q$
  123. 1000  IF Q$ = "P" OR Q$="p" THEN  GOTO 1050
  124. 1010  IF Q$ = "F" OR Q$="f" THEN  GOTO 1130
  125. 1020  PRINT 
  126. 1030  GOSUB 1270
  127. 1040  GOTO 980
  128. 1050  CLS
  129. 1060 B = D * (1 - (1 / (1 + I) ^ N)) / I
  130. 1070 B =  INT (B + .5)
  131. 1080  GOSUB 1330
  132. 1090  LOCATE 5,5: PRINT "PRESENT VALUE of $";D:LOCATE 6,5: PRINT "ANNUITY"
  133. 1100  LOCATE 8,5: PRINT "for";N;"years at";I * 100;"%"
  134. 1110  LOCATE 10,5: PRINT "              is $";B
  135. 1120  GOTO 1200
  136. 1130  CLS
  137. 1140 B = (D * ((((1 + I) ^ (N + 1)) - 1) / I)) - D
  138. 1150 B =  INT (B + .5)
  139. 1160  GOSUB 1330
  140. 1170  LOCATE 5,5 : PRINT "FUTURE VALUE of $";D:LOCATE 6,5: PRINT "ANNUITY"
  141. 1180  LOCATE 8,5: PRINT "for";N;"years at";I * 100;"%"
  142. 1190  LOCATE 10,5: PRINT "             is $";B
  143. 1200  LOCATE 15,5: PRINT "Want another? <Y/N>"
  144. 1210  C$=INKEY$ : IF C$ = "" THEN 1210
  145. 1220  IF  C$ =  "Y" OR C$="y" THEN CLS : GOSUB 1330: GOTO 240
  146. 1230  IF  C$ <  > "N" AND C$<> "n" THEN 1210
  147. 1240  GOTO 1340
  148. 1250  CLS : GOSUB 1330
  149. 1260  GOTO 240
  150. 1270  PRINT TAB(15);"Try again."
  151. 1280  PRINT
  152. 1290  FOR Z = 1 TO 2000: NEXT
  153. 1300  RETURN
  154. 1310  RETURN
  155. 1320 REM
  156. 1330  RETURN
  157. 1340  CLS : LOCATE 10,5: PRINT "Is anyone waiting to try? <Y/N>"
  158. 1350  POKE  - 16368,0
  159. 1360  Z$=INKEY$: IF Z$ = "" THEN 1360
  160. 1370  IF Z$ = "Y" OR Z$="y" THEN  RUN
  161. 1380  IF Z$ <  > "N" AND Z$ <> "n" THEN 1350
  162. 1390  LOCATE  10
  163. 1400  PRINT : LOCATE , 9: PRINT " * * * T H E  E N D * * *"
  164. 1410  LOCATE 21,13: PRINT "Loading menu..."
  165. 1420 CHAIN "MENU",170: RUN
  166. RINT : LOCATE , 9: PRINT " * * * T H E  E N