Listing of file='ANNUIT.BAS;01' on disk='vmedia/chip_75-sector.ccvf'
8025 CLEAR 100:PLOT 12 8030 GOTO 9025 8040 L= L+ 1:IF L= 23THEN ZZ= CALL (0):L= 22 8050 GOSUB 8060:PRINT SPC( 63)"" 8060 PLOT 3,0,L:RETURN 9025 PLOT 3,24,0,14 9030 PRINT "* ANNUITY *" 9040 S= 0 9060 PRINT "THIS PROGRAM COMPUTES PAYMENT AND WITHDRAWAL ANNUITIES." 9070 GOTO 11010 9090 PLOT 3,0,13:PRINT "WHICH ANNUITY TYPE (1=PAYMENT, 2=WITHDRAWAL) "; 9100 DEF FN A(U)= .01* INT (100* U+ .5) 9102 DEF FN C(X)= INT (X* 100- INT (X)* 100+ .5)/ 100 9103 DEF FN I(S)= 5- LEN (STR$ (S)) 9104 DEF FN J(A2)= 14- LEN (STR$ (INT (A2))) 9105 DEF FN K(B)= 25- LEN (STR$ (INT (B))) 9106 DEF FN L(X9)= 38- LEN (STR$ (INT (X9))) 9107 DEF FN M(Y)= 50- LEN (STR$ (INT (Y))) 9110 INPUT "?";A:REM 9120 GOTO 9170 9130 A= 3- A 9140 PLOT 3,46,13:PRINT A 9170 ON AGOTO 9220,9810 9190 PLOT 17,3,0,13,11,3,0,13 9200 PRINT " ANSWER 1 OR 2 PLEASE.":GOTO 9206 9205 FOR I= 1TO 100:PLOT 3,64,0:NEXT :RETURN 9206 GOSUB 9205 9207 PLOT 18,3,0,13,11,3,0,13 9210 GOTO 9090 9220 IF S= 1 THEN 9260 9240 PLOT 3,0,14:PRINT "WHICH VARIABLE IS UNKNOWN (1=N,2=A,3=I,4=R) "; 9250 INPUT "?";D 9260 ON DGOTO 9340,9430,9510,9570 9305 PLOT 3,0,14,11,3,0,14:GOSUB 9310:GOTO 9315 9310 PRINT " ANSWER 1,2,3,OR 4 PLEASE.":GOSUB 9205:RETURN 9315 PLOT 3,0,14,11,3,0,14 9320 GOTO 9240 9340 PRINT "WHAT ARE A($),I(PCT),R($) "; 9345 INPUT "?";A1,I1,R1 9350 GOSUB 12600 9360 I1= I1/ 100 9370 N1= LOG ((A1* I1/ R1)+ 1)/ LOG (1+ I1) 9390 GOSUB 12610 9400 PRINT "NUMBER OF PERIODS = N = "; 9405 PRINT N1 9410 GOTO 9640 9430 PRINT "WHAT ARE N(INTEGER),I(PCT),R($) "; 9440 INPUT "?";N1,I1,R1 9445 GOSUB 12600 9450 I1= I1/ 100 9460 A1= R1* ((1+ I1)^ N1- 1)/ I1 9470 GOSUB 12610 9480 PRINT "AMOUNT AT END OF N PERIODS = A = "; 9485 PRINT "$"INT (A1);".";RIGHT$ (STR$ (INT (FN C(A1)* 100+ 1000.5)),2) 9490 GOTO 9640 9510 PRINT "WHAT ARE N(INTEGER),A($),R($) "; 9520 INPUT "?";N1,P1,R1 9530 PRINT 9540 IF N1* R1> P1 THEN 10980 9545 GOSUB 12600 9550 GOTO 10580 9570 PRINT "WHAT ARE N(INTEGER),A($),I(PCT) "; 9580 INPUT "?";N1,A1,I1 9585 GOSUB 12600 9590 I1= I1/ 100 9600 R1= A1* I1/ ((1+ I1)^ N1- 1) 9610 GOSUB 12610 9620 PRINT "PAYMENT EACH PERIOD = R = "; 9630 PRINT "$"INT (R1);".";RIGHT$ (STR$ (INT (FN C(R1)* 100+ 1000.5)),2) 9640 PLOT 3,24,23:PRINT "---------------" 9670 PRINT "ANOTHER CASE ? ENTER ONE OF THE FOLLOWING :" 9675 PRINT " 1) '1' FOR ANOTHER CASE, SAME TYPE ;" 9680 PRINT " 2) '2' FOR ANOTHER CASE, DIFFERENT UNKNOWN ;" 9685 PRINT " 3) '3' FOR ANOTHER CASE, OTHER TYPE OF ANNUITY ;" 9690 PRINT " 4) '4' TO GET TOTAL INTEREST PAID OVER THE N PERIODS ;" 9695 PRINT " 5) '5' FOR A TABLE OF WITHDRAWALS, PRINCIPAL, AND INTEREST ;" 9700 PRINT "OR 6) '6' TO TERMINATE "; 9720 INPUT S 9725 IF S< > 6THEN 11500 9727 GOTO 11000 9730 IF S= 1OR S= 2THEN 9170 9740 IF S= 3THEN 9130 9770 IF A < > 1 THEN 9810 9780 PRINT 9790 PRINT "ALTERNATIVE NOT APPLICABLE TO PAYMENT ANNUITIES." 9800 GOTO 9640 9810 ON SGOTO 9870,9840,9840,10020,10020 9840 PLOT 3,0,14 9850 PRINT "WHICH VARIABLE IS UNKNOWN (1=N,2=P,3=I,4=R) "; 9860 INPUT "?";A1 9870 ON A1GOTO 9950,10450,10530,10890 9915 PLOT 3,0,14,11,3,0,14 9920 GOSUB 9310 9925 PLOT 3,0,14,11,3,0,14:REM 9930 GOTO 9850 9950 PRINT "WHAT ARE P($),I(PCT),R($) "; 9960 INPUT "?";P1,I1,R1 9970 GOSUB 12600:I1= I1/ 100 9980 N1= LOG (R1/ (R1- P1* I1))/ LOG (1+ I1) 9985 N1= INT (N1+ .499) 9990 GOSUB 12610 10000 PRINT "NUMBER OF PERIODS = N = "; 10005 PRINT N1 10010 GOTO 9640 10020 E= 0:IF S= 4THEN GOSUB 12600 10030 P2= INT (N1+ .00001)- (N1+ .00001) 10040 IF ABS (P2) > .00001 THEN 10070 10050 E= 1 10060 GOTO 10080 10070 N1= INT (N1) 10080 P2= 1 10090 ON S- 3GOTO 10160,10110 10110 P2= 0 10115 XX= 0 10120 PRINT 10125 L= 19:PLOT 3,0,17 10130 PRINT "PERIOD PRINCIPAL INTEREST PRINC BAL INT TO DATE" 10135 PLOT 3,24,23:PRINT "---------------" 10140 PLOT 3,0,19,23 10150 PRINT TAB( 4);"0"; 10151 P1$= STR$ (P1):V= LEN (P1$) 10152 FOR U= 1TO V 10153 IF MID$ (P1$,U,1) = "." THEN 10156 10154 NEXT U 10155 P1$= P1$+ ".00" : GOTO 10158 10156 IF V- U = 0 THEN P1$= P1$+ "00" 10157 IF V- U = 1 THEN P1$= P1$+ "0" 10158 PLOT 22:V= LEN (P1$):PRINT TAB( 41- V);P1$ 10160 X= 0 10170 X9= P1 10180 Y= 0 10190 FOR S= 1TO N1- E 10200 B= X9* I1:B= INT (B* 1000+ 5)/ 10:B= INT (B):B= B/ 100 10210 A2= INT (INT (R1* 100+ .5)- INT (B* 100+ .5)) 10215 A2= A2/ 100 10220 GOSUB 12510 10230 Y= Y+ B 10270 IF P2 < > 0 THEN 10290 10271 GOSUB 8040:PLOT 23 10272 PRINT TAB( FN I(S));S;:PLOT 18 10274 PRINT TAB( FN J(A2));INT (A2);".";RIGHT$ (STR$ (INT (FN C(A2)* 100+ 1000.5)),2);:PLOT 17 10276 PRINT TAB( FN K(B));INT (B);".";RIGHT$ (STR$ (INT (FN C(B)* 100+ 1000.5)),2);:PLOT 22 10278 PRINT TAB( FN L(X9));INT (X9);".";RIGHT$ (STR$ (INT (FN C(X9)* 100+ 1000.5)),2);:PLOT 21 10280 PRINT TAB( FN M(Y));INT (Y);".";RIGHT$ (STR$ (INT (FN C(Y)* 100+ 1000.5)),2):PLOT 18 10285 IF XX= 1 THEN 9640 10290 NEXT S 10300 S= N1 10310 B= FN A(X9* I1) 10320 A2= R1- B 10330 GOSUB 12510 10335 IF X9< > 0AND ABS (X9)< ABS (R1)THEN A2= A2+ X9:X9= 0 10340 Y= Y+ B 10380 IF P2= 0 THEN 10420 10390 GOSUB 12610 10400 PRINT "TOTAL INTEREST PAID = "; 10405 PRINT "$"INT (Y);".";RIGHT$ (STR$ (INT (FN C(Y)* 100+ 1000.5)),2):PLOT 18 10410 GOTO 9640 10420 XX= 1:GOTO 10271 10450 PRINT "WHAT ARE N(INTEGER),I(PCT),R($) "; 10460 INPUT "?";N1,I1,R1 10470 GOSUB 12600:I1= I1/ 100 10480 P1= R1* ((1+ I1)^ N1- 1)/ (I1* (1+ I1)^ N1) 10490 GOSUB 12610 10500 PRINT "ORIGINAL PRINCIPAL AMOUNT IS "; 10505 PRINT "$"INT (P1);".";RIGHT$ (STR$ (INT (FN C(P1)* 100+ 1000.5)),2) 10507 PLOT 18 10510 GOTO 9640 10530 PRINT "WHAT ARE N(INTEGER),P($),R($) "; 10540 INPUT "?";N1,P1,R1 10550 GOSUB 12600 10560 IF N1* R1 < = P1 THEN 10960 10580 I1= .1 10590 I2= 0 10600 I3= 1 10610 IF A < > 1 THEN 10640 10620 P3= R1* ((1+ I1)^ N1- 1)/ I1 10630 GOTO 10650 10640 P3= R1* ((1+ I1)^ N1- 1)/ (I1* (1+ I1)^ N1) 10650 P4= ABS (P1- P3) 10660 IF P4 > .001 THEN 10690 10665 GOSUB 12610 10670 PRINT "INTEREST PER PERIOD (PCT) = I = "; 10675 PRINT 100* I1;"%" 10680 GOTO 9640 10690 IF P4/ P1 > .3 THEN 10800 10700 IF A= 1 THEN 10730 10710 IF P3< P1 THEN 10770 10720 GOTO 10740 10730 IF P3> P1 THEN 10770 10740 I2= I1 10750 I1= (I1+ I3)/ 2 10760 GOTO 10610 10770 I3= I1 10780 I1= (I1+ I2)/ 2 10790 GOTO 10610 10800 IF A= 1 THEN 10830 10810 IF P3 < P1 THEN 10850 10820 GOTO 10740 10830 IF P3> P1 THEN 10850 10840 GOTO 10740 10850 I3= I1 10860 I1= (I1+ I2)/ 4 10870 GOTO 10610 10890 PRINT "WHAT ARE N(INTEGER),P($),I(PCT) "; 10900 INPUT "?";N1,P1,I1 10910 GOSUB 12600:I1= I1/ 100 10920 R1= P1* I1* (1+ I1)^ N1/ ((1+ I1)^ N1- 1) 10930 GOSUB 12610 10940 PRINT "WITHDRAWAL EACH PERIOD = R = "; 10945 PRINT "$"INT (R1);".";RIGHT$ (STR$ (INT (FN C(R1)* 100+ 1000.5)),2);"" 10950 GOTO 9640 10960 PLOT 3,0,18:PRINT "THE PRINCIPAL [P] IS NOT RECOVERED; [I] MUST BE POSITIVE." 10965 GOSUB 10995 10970 GOTO 10530 10980 PLOT 3,0,18:PRINT "AMOUNT PAID IN [N*R] NOT RECOVERED; [I] MUST BE POSITIVE." 10985 GOSUB 10995 10990 GOTO 9510 10995 FOR I= 1TO 100:PLOT 3,64,30:NEXT :PLOT 3,0,18,11,3,0,16,11:RETURN 11000 PLOT 27,11:LOAD "MENU;1":RUN 11010 PRINT 11020 PRINT "DEFINITION OF VARIABLES:" 11030 PRINT " --N = NUMBER OF PERIODS" 11040 PRINT " --A = AMOUNT LEFT AT END OF N PERIODS" 11050 PRINT " --I = INTEREST IN PERCENT PER PERIOD" 11060 PRINT " --R = AMOUNT OF PAYMENT PER PERIOD" 11070 PRINT " --P = ORIGINAL PRINCIPAL AMOUNT" 11090 FOR Q= 1TO 62:PRINT "-";:NEXT :PRINT "-" 11100 GOTO 9090 11200 END 11500 T= 14:ON SGOTO 11503,11510,11510,11504,11504 11503 PLOT 3,0,15,11 11504 T= 16:GOTO 11510 11505 PLOT 3,0,13,11 11510 FOR Q= TTO 30STEP 2 11520 PLOT 14,3,0,Q,11 11530 NEXT Q 11540 PLOT 15,3,0,15 11550 IF S> 6THEN 9660 11560 GOTO 9730 12205 IF P2< > 0THEN RETURN 12510 VA= INT (X9) 12520 VB= INT ((X9- VA)* 100+ .5)/ 100 12530 UA= INT (A2) 12540 UB= INT ((A2- UA)* 100+ .5)/ 100 12550 WA= INT (VA- UA) 12560 WB= INT (VB* 100- UB* 100+ .5)/ 100 12570 X9= WA+ WB 12580 RETURN 12600 PLOT 3,26,17:PRINT "CALCULATING":PLOT 3,64,0:RETURN 12610 PLOT 3,0,17,11:RETURN