9000  REM *****ANNUIT*****BUSINESS PROGRAM
9004  REM ANNUIT**********VERSION #1 (7/31/69)*****ANNUITY*****
9008  REM  COMPUTES PAYMENT AND WITHDRAWAL ANNUITIES
9012  PRINT "*  ANNUITY  *"
9016  LET S=0
9020  PRINT 
9024  PRINT "THIS PROGRAM COMPUTES PAYMENT AND WITHDRAWAL ANNUITIES."
9025  GOTO 9804
9028  PRINT 
9032  PRINT "WHICH ANNUITY TYPE (1=PAYMENT, 2=WITHDRAWAL)";
9036  DEF FNA()=.01*INT(100*+.5)
9040  INPUT A
9044  GOTO 9064
9048  IF A=1 THEN 9060
9052  LET A=1
9056  GOTO 9064
9060  LET A=2
9064  IF A=1 THEN 9084
9068  IF A=2 THEN 9328
9072  PRINT 
9076  PRINT "   ANSWER 1 OR 2 PLEASE."
9080  GOTO 9024
9084  IF S=1 THEN 9104
9092  PRINT 
9096  PRINT "WHICH VARIABLE IS UNKNOWN (1=N,2=A,3=I,4=R)";
9100  INPUT D
9104  IF D=1 THEN 9132
9108  IF D=2 THEN 9164
9112  IF D=3 THEN 9196
9116  IF D=4 THEN 9220
9120  PRINT 
9124  PRINT "   ANSWER 1,2,3,OR 4 PLEASE."
9128  GOTO 9092
9132  PRINT 
9136  PRINT "WHAT ARE A($),I(PCT),R($)";
9140  INPUT A1,I1,R1
9144  LET I1=I1/100
9148  LET N1=LOG((A1*I1/R1)+1)/LOG(1+I1)
9152  PRINT 
9156  PRINT "NUMBER OF PERIODS = N =";N1
9160  GOTO 9252
9164  PRINT 
9168  PRINT "WHAT ARE N(INTEGER),I(PCT),R($)";
9172  INPUT N1,I1,R1
9176  LET I1=I1/100
9180  LET A1=R1*((1+I1)^N1-1)/I1
9184  PRINT 
9188  PRINT "AMOUNT AT END OF N PERIODS = A =";A1
9192  GOTO 9252
9196  PRINT 
9200  PRINT "WHAT ARE N(INTEGER),A($),R($)";
9204  INPUT N1,P1,R1
9208  PRINT 
9212  IF N1*R1>P1 THEN 9788
9216  GOTO 9624
9220  PRINT 
9224  PRINT "WHAT ARE N(INTEGER),A($),I(PCT)";
9228  INPUT N1,A1,I1
9232  LET I1=I1/100
9236  LET R1=A1*I1/((1+I1)^N1-1)
9240  PRINT 
9244  PRINT "PAYMENT EACH PERIOD = R =";R1
9248  GOTO 9252
9252  PRINT 
9256  PRINT "                            ---------------"
9260  PRINT 
9264  PRINT "ANOTHER CASE? ENTER ONE OF THE FOLLOWING: 1)'1' FOR ANOTHER CASE, SAME"
9268  PRINT "TYPE; 2)'2' FOR ANOTHER CASE, DIFFERENT UNKNOWN; 3)'3' FOR ANOTHER"
9272  PRINT "CASE, OTHER TYPE OF ANNUITY; 4)'4' TO GET TOTAL INTEREST PAID OVER THE"
9276  PRINT "N PERIODS; 5)'5' FOR A TABLE OF WITHDRAWALS, PRINCIPAL, AND INTEREST;"
9280  PRINT "OR 6)'6' TO TERMINATE";
9284  INPUT S
9288  IF S=1 THEN 9064
9292  IF S=2 THEN 9064
9296  IF S=3 THEN 9048
9300  IF S=6 THEN 9796
9304  IF A <> 1 THEN 9320
9308  PRINT 
9312  PRINT "ALTERNATIVE NOT APPLICABLE TO PAYMENT ANNUITIES."
9316  GOTO 9252
9320  IF S=4 THEN 9404
9324  IF S=5 THEN 9404
9328  IF S=1 THEN 9344
9332  PRINT 
9336  PRINT "WHICH VARIABLE IS UNKNOWN (1=N,2=P,3=I,4=R)";
9340  INPUT A1
9344  IF A1=1 THEN 9372
9348  IF A1=2 THEN 9572
9352  IF A1=3 THEN 9604
9356  IF A1=4 THEN 9748
9360  PRINT 
9364  PRINT "   ANSWER 1,2,3, OR 4 PLEASE."
9368  GOTO 9340
9372  PRINT 
9376  PRINT "WHAT ARE P($),I(PCT),R($)";
9380  INPUT P1,I1,R1
9384  LET I1=I1/100
9388  LET N1=LOG(R1/(R1-P1*I1))/LOG(1+I1)
9392  PRINT 
9396  PRINT "NUMBER OF PERIODS = N =";N1
9400  GOTO 9252
9404  LET N1=N1+.00001
9408  LET P2=INT(N1)-N1
9412  IF ABS(P2)>.00001 THEN 9424
9416  LET N1=N1-1
9420  GOTO 9428
9424  LET N1=INT(N1)
9428  LET P2=1
9432  IF S=4 THEN 9460
9436  IF S=5 THEN 9440
9440  LET P2=0
9444  PRINT 
9448  PRINT "PERIOD","PRINCIPAL","INTEREST","PRINC BAL","INT TO DATE"
9452  PRINT 
9456  PRINT " 0"," "," ",P1
9460  LET X=0
9464  LET X9=P1
9468  LET Y=0
9472  FOR S=1 TO N1
9476  LET A3=(R1-P1*I1)*(1+I1)^(S-1)
9480  LET A2=FNA(A3)
9484  LET C=R1-A3
9488  LET B=FNA(C)
9492  LET X=X+A3
9496  LET X9=X9-A3
9500  LET Y=FNA(Y+C)
9504  IF P2 <> 0 THEN 9512
9508  PRINT S,A2,B,X9,Y
9512  NEXT S
9516  LET S=N1+1
9520  LET A3=P1-X
9524  LET A2=FNA(A3)
9528  LET B1=I1*A3
9532  LET B=FNA(B1)
9536  LET X=X+A3
9540  LET X9=0
9544  LET Y=Y+B1
9548  IF P2=0 THEN 9564
9552  PRINT 
9556  PRINT "TOTAL INTEREST PAID =";Y
9560  GOTO 9252
9564  PRINT S,A2,B,X9,Y
9568  GOTO 9252
9572  PRINT 
9576  PRINT "WHAT ARE N(INTEGER),I(PCT),R($)";
9580  INPUT N1,I1,R1
9584  LET I1=I1/100
9588  LET P1=R1*((1+I1)^N1-1)/(I1*(1+I1)^N1)
9592  PRINT 
9596  PRINT "ORIGINAL PRINCIPAL AMOUNT IS";P1
9600  GOTO 9252
9604  PRINT 
9608  PRINT "WHAT ARE N(INTEGER),P($),R($)";
9612  INPUT N1,P1,R1
9616  PRINT 
9620  IF N1*R1 <= P1 THEN 9780
9624  PRINT 
9628  LET I1=.1
9632  LET I2=0
9636  LET I3=1
9640  IF A <> 1 THEN 9652
9644  LET P3=R1*((1+I1)^N1-1)/I1
9648  GOTO 9656
9652  LET P3=R1*((1+I1)^N1-1)/(I1*(1+I1)^N1)
9656  LET P4=ABS(P1-P3)
9660  IF P4>.001 THEN 9672
9664  PRINT "INTEREST PER PERIOD (PCT) = I =";100*I1
9668  GOTO 9252
9672  IF P4/P1>.3 THEN 9716
9676  IF A=1 THEN 9688
9680  IF P3<P1 THEN 9704
9684  GOTO 9692
9688  IF P3>P1 THEN 9704
9692  LET I2=I1
9696  LET I1=(I1+I3)/2
9700  GOTO 9640
9704  LET I3=I1
9708  LET I1=(I1+I2)/2
9712  GOTO 9640
9716  IF A=1 THEN 9728
9720  IF P3<P1 THEN 9736
9724  GOTO 9692
9728  IF P3>P1 THEN 9736
9732  GOTO 9692
9736  LET I3=I1
9740  LET I1=(I1+I2)/4
9744  GOTO 9640
9748  PRINT 
9752  PRINT "WHAT ARE N(INTEGER),P($),I(PCT)";
9756  INPUT N1,P1,I1
9760  LET I1=I1/100
9764  LET R1=P1*I1*(1+I1)^N1/((1+I1)^N1-1)
9768  PRINT 
9772  PRINT "WITHDRAWAL EACH PERIOD = R =";R1
9776  GOTO 9252
9780  PRINT "THE PRINCIPAL [P] IS NOT RECOVERED; [I] MUST BE POSITIVE."
9784  GOTO 9604
9788  PRINT "AMOUNT PAID IN [N*R] NOT RECOVERED; [I] MUST BE POSITIVE"
9792  GOTO 9196
9796  STOP 
9804  PRINT 
9808  PRINT "DEFINITION OF VARIABLES:"
9812  PRINT "   --N = NUMBER OF PERIODS"
9816  PRINT "   --A = AMOUNT LEFT AT END OF N PERIODS"
9820  PRINT "   --I = INTEREST IN PERCENT PER PERIOD"
9824  PRINT "   --R = AMOUNT OF PAYMENT PER PERIOD"
9828  PRINT "   --P = ORIGINAL PRINCIPAL AMOUNT"
9832  PRINT 
9836  PRINT "----------------------------------------------------------------------"
9840  GOTO 9028
9999  END 
