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.
 
 
 
 
 
 

90 lines
3.9 KiB

  1. 1 REM SINKFUND
  2. 5 CLEAR 1000
  3. 9 CLS
  4. 10 PRINT TAB(15); "SINKING FUNDS":PRINT
  5. 20 PRINT "A SINKING FUND IS AN ANNUITY WHICH MUST ACCUMULATE TO SOME
  6. 25 PRINT "FIXED AMOUNT BY A GIVEN TIME IN THE FUTURE. THIS MEANS THAT
  7. 30 PRINT "A FIXED AMOUNT WILL BE PAID INTO A FUND EVERY PERIOD AND
  8. 35 PRINT "EARN INTEREST. AT THE END OF THE LAST PERIOD THE SUM OF
  9. 40 PRINT "THE PAYMENTS AND THE INTEREST WILL JUST EQUAL THE PREDE-FIXED
  10. 45 PRINT "AMOUNT. IN THIS PROGRAM WE MUST INPUT THE FUTURE DESIRED
  11. 50 PRINT "AMOUNT(FUTURE VALUE), THE INTEREST RATE AND THE NUMBER
  12. 55 PRINT "PAYMENTS NEEDED. THE PROGRAM WILL COMPUTE THE PAYMENT AND
  13. 60 PRINT "WILL PRINT UP A TABLE SHOWING HOW THE FUND GROWS."
  14. 90 PRINT :INPUT "PRESS ENTER TO BEGIN";Z9$
  15. 250 CLS
  16. 255 CLEAR 1000
  17. 260 PRINT :INPUT "IS INTEREST RATE QUOTED PER PERIOD(P) OR ANNUALLY(A)";ZI$
  18. 270 IF ZI$<>"P" AND ZI$<>"A" THEN PRINT "INPUT ERROR":GOTO 260
  19. 280 IF ZI$="A" THEN PRINT :INPUT "NUMBER OF PAYMENTS PER YEAR";ZN
  20. 290 REM"ORDINARY ANNUITY-FUTURE VALUE TYPE PROBLEM
  21. 300 CLS
  22. 310 GOSUB 350
  23. 320 I=I/100
  24. 330 PMT=FV*I/((1+I)[N-1)
  25. 340 GOTO 420:REM PRINTOUT
  26. 350 REM INPUT SBR
  27. 360 CLS:PRINT "ENTER EACH OF THE FOLLOWING.":PRINT
  28. 370 INPUT "FUTURE VALUE ";FV
  29. 380 INPUT "NUMBER OF PAYMENTS ";N
  30. 390 IF ZI$="A" THEN INPUT "ANNUAL INTEREST RATE(%) ";I:I=I/ZN:GOTO 410
  31. 400 INPUT "INTEREST RATE PER PERIOD(%)";I
  32. 410 RETURN
  33. 420 REM PRINT OUT
  34. 430 CLS
  35. 440 PRINT "SINKING FUND FOR";N;"PAYMENTS AT INTEREST RATE OF";100*I;"% PER PERIOD"
  36. 450 PRINT "NUMBER OF PAYMENTS =";N
  37. 460 IF ZI$="A" THEN PRINT " CONSISTING OF ";ZN;" PAYMENTS ANNUALLY."
  38. 470 IF ZI$="A" THEN PRINT "ANNUAL INTEREST RATE =";100*I*ZN:GOTO 490
  39. 480 PRINT "INT. RATE PER PERIOD=";100*I
  40. 490 PRINT "PAYMENT =";PMT
  41. 500 PRINT :INPUT "PRESS ENTER FOR TO PRINT TABLE";Z9
  42. 510 CLS
  43. 520 PP(1)=0:QQ(1)=0:D1F(1)=0:REM SUM OF PAYMENTS,INT,&INCR. IN FUND
  44. 530 F$(1)="END PERIOD DEPOSIT INT ON FUND INCR. IN FUND AMT IN FUND"
  45. 540 F$(2)=" ### #######.## ######.## #######.## #######.##"
  46. 550 F$(3)=" TOTALS #######.## ######.## #######.## #######.##"
  47. 560 PRINT F$(1):PRINT
  48. 565 A=0
  49. 570 FOR J= 1 TO N
  50. 580 TT=A*I:A=A+TT+PMT:D1F=TT+PMT
  51. 590 REM A=AMT IN FUND:TT=INTEREST ON FUND:DIF=INCR IN FUND
  52. 600 PRINT USING F$(2);J,PMT,TT,D1F,A
  53. 610 IF J/12=INT(J/12) THEN GOSUB 670:CLS:PRINT F$(1):PRINT
  54. 620 PP(1)=PP(1)+PMT:QQ(1)=QQ(1)+TT:D1F(1)=D1F(1)+D1F
  55. 630 NEXT J
  56. 640 PRINT USING F$(3);PP(1),QQ(1),D1F(1)
  57. 650 PRINT :INPUT "IS LINE PRINTER OUTPUT DESIRED(Y/N)";Z2$
  58. 652 IF Z2$="Y" THEN GOTO 700
  59. 655 IF Z2$="N" THEN GOTO 250
  60. 657 PRINT "INPUT ERROR":PRINT :GOTO 650
  61. 660 GOTO 250
  62. 670 INPUT "PRESS ENTER TO CONTINUE";Z9$:RETURN
  63. 700 REM PRINT OUT
  64. 710 CLS
  65. 720 LPRINT "SINKING FUND FOR";N;"PAYMENTS AT INTEREST RATE OF";100*I;"% PER PERIOD"
  66. 730 LPRINT "NUMBER OF PAYMENTS =";N
  67. 740 IF ZI$="A" THEN LPRINT " CONSISTING OF ";ZN;" PAYMENTS ANNUALLY."
  68. 750 IF ZI$="A" THEN LPRINT "ANNUAL INTEREST RATE =";100*I*ZN:GOTO 770
  69. 760 LPRINT "INT. RATE PER PERIOD=";100*I
  70. 770 LPRINT "PAYMENT =";PMT
  71. 780 LPRINT " ":LPRINT " ":LPRINT " "
  72. 800 PP(1)=0:QQ(1)=0:D1F(1)=0:REM SUM OF PAYMENTS,INT,&INCR. IN FUND
  73. 810 F$(1)="END PERIOD DEPOSIT INT ON FUND INCR. IN FUND AMT IN FUND"
  74. 820 F$(2)=" ### #######.## ######.## #######.## #######.##"
  75. 830 F$(3)=" TOTALS #######.## ######.## #######.## #######.##"
  76. 840 LPRINT F$(1):LPRINT " "
  77. 845 A=0
  78. 850 FOR J= 1 TO N
  79. 860 TT=A*I:A=A+TT+PMT:D1F=TT+PMT
  80. 870 REM A=AMT IN FUND:TT=INTEREST ON FUND:DIF=INCR IN FUND
  81. 880 LPRINT USING F$(2);J,PMT,TT,D1F,A
  82. 900 PP(1)=PP(1)+PMT:QQ(1)=QQ(1)+TT:D1F(1)=D1F(1)+D1F
  83. 910 NEXT J
  84. 920 LPRINT USING F$(3);PP(1),QQ(1),D1F(1)
  85. 925 INPUT "PRESS ENTER FOR MORE";Z9$
  86. 927 IF Z9$ = "-1" THEN END
  87. 928 GOTO 250
  88. 930 INPUT "PRESS ENTER TO CONTINUE";Z9$:RETURN