ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

136 lines
5.6 KiB

  1. 1000 CLS:PRINT" ANNUITY COMPUTATION BY DR. PETER SHENKIN"
  2. 1002 PRINT" AN ANNUITY IS ANY SET OF EQUAL PAYMENTS MADE AT
  3. 1003 PRINT"EQUAL INTERVALS OF TIME. WITH AN ORDINARY ANNUITY
  4. 1004 PRINT"PAYMENTS ARE MADE AT THE ENDS OF THE PERIODS DE-
  5. 1005 PRINT"FINED BY THESE TIME INTERVALS. FOR AN ANNUITY DUE
  6. 1006 PRINT"THE PAYMENTS ARE MADE AT THE BEGINNING OF THE PER-
  7. 1007 PRINT"IODS IN QUESTION. THE PRESENT VALUE OF AN ANNUITY
  8. 1008 PRINT"IS THE AMOUNT OF CASH ONE WOULD ACCEPT NOW INSTEAD
  9. 1009 PRINT"OF THE SEQUENCE OF FUTURE PAYMENTS. BECAUSE MONEY
  10. 1010 PRINT"HAS TIME VALUE (INTEREST IS CHARGED) THE PRESENT
  11. 1011 PRINT"VALUE DOES NOT EQUAL THE SUM OF THE PAYMENTS. tHE
  12. 1012 PRINT"FUTURE VALUE OF AN ANNUITY IS THE AMOUNT OF CASH
  13. 1013 PRINT"WHICH WOULD ACCUMULATE BY THE END OF THE ANNUITY
  14. 1014 PRINT"IF THE INDIVIDUAL PAYMENTS ARE INVESTED AT THE
  15. 1015 PRINT"PREVAILING INTEREST RATE.
  16. 1016 INPUT"PRESS ENTER TO CONTINUE";Z9$
  17. 1017 CLS:PRINT"MANY ANNUITIES ALSO INVOLVE A LAST BALLOON PAY-
  18. 1018 PRINT"MENT.IN THE ANNUITY PROBLEMS WE EXAMINE,THE VARIABLES
  19. 1020 PRINT"OF INTEREST ARE NUMBER OF PAYMENTS,INTEREST RATE PER
  20. 1030 PRINT"PERIOD,PAYMENT PER PERIOD,PRESENT OR FUTURE VALUE,AND
  21. 1040 PRINT"BALLOON PAYMENT (AT END OF TERM) IF DESIRED.GIVEN ANY
  22. 1045 PRINT"FOUR VALUES OF THE ABOVE VARIABLES THIS PROGRAM WILL
  23. 1050 PRINT"FIND THE FIFTH VARIABLE WHEN CONSIDERING THE PRESENT
  24. 1060 PRINT"VALUE SITUATION. IN THE FUTURE VALUE CASE NO BALLOON
  25. 1065 PRINT"PAYMENTS ARE CONSIDERED AS IN THIS CASE A BALLOON
  26. 1067 PRINT"PAYMENT OF A CERTAIN AMOUNT WOULD ADD THAT AMOUNT
  27. 1070 PRINT"TO FUTURE VALUE.NOTE THAT INTEREST RATES ARE WRITTEN
  28. 1075 PRINT"AS PER CENTS, NOT AS DECIMALS(E.G. 6%, NOT .06). IN
  29. 1080 PRINT"ADDITION NOTE THAT INTEREST RATE IS PER PERIOD,I.E.
  30. 1085 PRINT"PER MONTH,PER YEAR,ETC.
  31. 1090 PRINT:INPUT"PRESS ENTER TO BEGIN";Z9:CLS
  32. 1095 CLS
  33. 1100 PRINT"SELECT TYPE OF PROBLEM DESIRED."
  34. 1105 PRINT" 0.QUIT"
  35. 1110 PRINT" 1.ORDINARY ANNUITY-FUTURE VALUE(SINKING FUND)
  36. 1120 PRINT" 2.ANNUITY DUE-FUTURE VALUE
  37. 1130 PRINT" 3.ORDINARY ANNUITY-PRESENT VALUE
  38. 1140 PRINT" 4.ANNUITY DUE-PRESENT VALUE
  39. 1150 PRINT:INPUT"MAKE YOUR CHOICE";C
  40. 1153 IF C = 0 THEN END
  41. 1155 PRINT:INPUT"IS INTEREST RATE QUOTED PER PERIOD(P) OR ANNUALLY(A)";ZI$
  42. 1157 IF ZI$<>"P" AND ZI$<>"A" THEN PRINT"INPUT ERROR":GOTO 1155
  43. 1158 IF ZI$="A" THEN PRINT:INPUT"NUMBER OF PAYMENTS PER YEAR";ZN
  44. 1160 ON C GOTO 1200,1300,1400,1500
  45. 1200 REM"ORDINARY ANNUITY-FUTURE VALUE TYPE PROBLEM
  46. 1210 CLS
  47. 1220 GOSUB 3000
  48. 1223 I=I/100
  49. 1225 IF FV=9999 THEN FV=PMT*((1+I)[N-1)/I
  50. 1230 IF PMT=9999 THEN PMT=FV*I/((1+I)[N-1)
  51. 1240 IF N=9999 THEN N=LOG((FV*I/PMT+1))/LOG(1+I)
  52. 1250 IF ABS(I-99.99)<.01 THEN GOSUB 4000
  53. 1260 GOTO 5000:REM PRINTOUT
  54. 1300 GOSUB 3000
  55. 1310 I=I/100
  56. 1325 IF FV=9999 THEN FV=PMT*(1+I)*((1+I)[N-1)/I
  57. 1330 IF PMT=9999 THEN PMT=FV*I*(1/(1+I))/((1+I)[N-1)
  58. 1340 IF N=9999 THEN N=LOG((FV*I/(PMT*(1+I))+1))/LOG(1+I)
  59. 1350 IF ABS(I-99.99)<.01 THEN GOSUB 4100
  60. 1360 GOTO 5000:REM PRINTOUT
  61. 1400 GOSUB 3000:GOSUB 3080
  62. 1405 I=I/100
  63. 1410 IF PV=9999 THEN PV=PMT*(1/I)*(1-(1+I)[(-N))+BAL*(1+I)[(-N)
  64. 1420 IF PMT=9999 THEN PMT=(PV-BAL*(1+I)[(-N))*I/(1-(1+I)[(-N))
  65. 1430 IF N=9999 THEN T=(BAL*I-PMT)/(PV*I-PMT):N=LOG(T)/LOG(1+I)
  66. 1440 IF BAL=9999 THEN BAL=PV-PMT*(1/I)*(1-(1+I)[(-N)):BAL=BAL*(1+I)[N
  67. 1450 IF ABS(I-99.99)<.01 THEN GOSUB 4200
  68. 1460 GOTO 5000
  69. 1500 GOSUB 3000:GOSUB 3080
  70. 1510 I=I/100
  71. 1520 IF PV=9999 THEN PV=PMT*(1+I)*(1/I)*(1-(1+I)[(-N))+BAL*(1+I)[(-N)
  72. 1525 IF PMT=9999 THEN PMT=(PV-BAL*(1+I)[(-N))*I/(1+I)/(1-(1+I)[(-N))
  73. 1530 IF N=9999 THEN T=(BAL*I-PMT*(1+I))/(PV*I-PMT*(1+I)):N=LOG(T)/LOG(1+I)
  74. 1540 IF BAL=9999 THEN BAL=PV-PMT*(1+I)*(1/I)*(1-(1+I)[(-N)):BAL=BAL*(1+I)[N
  75. 1550 IF ABS(I-99.99)<.01 THEN GOSUB 4300
  76. 1560 GOTO 5000
  77. 3000 REM INPUT SBR
  78. 3010 CLS:PRINT"ENTER EACH OF THE FOLLOWING.FOR THE UNKNOWN VALUE
  79. 3020 PRINT"ENTER 9999.":PRINT
  80. 3030 IF C<3 THEN INPUT"FUTURE VALUE ";FV
  81. 3035 IF C>=3 THEN INPUT"PRESENT VALUE ";PV
  82. 3040 INPUT"PAYMENT ";PMT
  83. 3050 INPUT"NUMBER OF PAYMENTS ";N
  84. 3055 IF ZI$="A" THEN INPUT"ANNUAL INTEREST RATE ";I
  85. 3056 IF ZI$="A" AND I<>9999 THEN I=I/ZN
  86. 3057 IF ZI$="A" THEN GOTO 3070
  87. 3060 INPUT"INTEREST RATE PER PERIOD(%)";I
  88. 3070 RETURN
  89. 3080 INPUT"BALLOON PAYMENT ";BAL
  90. 3090 RETURN
  91. 4000 REM I FOR FV REG. ANNU.-SINKING FUND
  92. 4010 I=.01
  93. 4020 P=FV-PMT/I*((1+I)[N-1)
  94. 4025 D=PMT*(N*(1+I)[(N-1)/I- ((1+I)[N-1)/I[2)
  95. 4027 D=-D
  96. 4030 GOSUB 4600
  97. 4040 IF ABS(P)<=.1 THEN RETURN
  98. 4050 GOTO 4020
  99. 4100 REM I FOR FV ANNUITY DUE
  100. 4110 I=.01
  101. 4120 P=FV-PMT*(1+I)/I*((1+I)[N-1)
  102. 4125 D=PMT*((N+1)*(1+I)[N-1)/I-PMT*((1+I)[(N+1)-1-I)/I[2
  103. 4127 D=-D
  104. 4130 GOSUB 4600
  105. 4140 IF ABS(P)<=.1 THEN RETURN
  106. 4150 GOTO 4120
  107. 4200 REM I FOR PV/ORDINARY ANNUITY
  108. 4210 I=.01
  109. 4220 P=PMT/I*(1-(1+I)[(-N))+BAL*(1+I)[(-N)-PV
  110. 4225 D=N*PMT/(I*(1+I)[(N+1))-PMT/(I[2)*(1-(1+I)[(-N))-N*BAL/(1+I)[(N+1)
  111. 4230 GOSUB 4600
  112. 4240 IF ABS(P)<=.1 THEN RETURN
  113. 4250 GOTO 4220
  114. 4300 REM I FOR PV/ANNUITY DUE
  115. 4305 I=.01
  116. 4310 P=PMT*(1+I)/I*(1-(1+I)[(-N))+BAL*(1+I)[(-N)-PV
  117. 4320 D=(1+I)*(N*PMT/(I*(1+I)[(N+1))-PMT/(I[2)*(1-(1+I)[(-N)))+PMT/I*(1-(1+I)[(-N))-N*BAL/(1+I)[(N+1)
  118. 4330 GOSUB 4600
  119. 4335 IF ABS(P)<.1 THEN RETURN
  120. 4340 GOTO 4310
  121. 4600 REM COMPUTATION
  122. 4610 I=I-P/D
  123. 4620 RETURN
  124. 5000 REM PRINT OUT
  125. 5010 CLS
  126. 5020 IF C=1 OR C=2 THEN PRINT"FUTURE VALUE =";FV
  127. 5025 IF C=3 OR C=4 THEN PRINT"PRESENT VALUE =";PV
  128. 5030 PRINT"NUMBER OF PAYMENTS =";N
  129. 5033 IF ZI$="A" THEN PRINT " CONSISTING OF ";ZN;" PAYMENTS ANNUALLY."
  130. 5035 IF ZI$="A" THEN PRINT"ANNUAL INTEREST RATE =";100*I*ZN:GOTO 5050
  131. 5040 PRINT"INT. RATE PER PERIOD=";100*I
  132. 5050 PRINT"PAYMENT =";PMT
  133. 5060 IF C=3 OR C=4 THEN PRINT"BALLOON PAYMENT =";BAL
  134. 5090 PRINT:INPUT"PRESS ENTER FOR MORE";Z9
  135. 5100 GOTO 1095