2	DIM X(100),Y(100),U(100),V(100)
3	LET I=0
4	LET X1=0.99
5	LET I=I+1
6	  READ X(I)
10	DATA -663,-530,300,434,437
11	DATA 455,431,443,445,767
50	DATA 9999999
60	IF X(I)=9999999 THEN 80
70	GO TO 4
80	LET N=I-1
90	LET S1=X(1)
100	LET S2=0.
110	LET X2=1.
120	FOR I=2 TO N
130	LET S2=S2+(I-1)*X2*X(I)
140	LET X2=X2*X1
150	LET S1=S1+X2*X(I)
160	NEXT I
170	LET D1=S1/S2
180	LET X1=X1-D1
190	IF ABS(D1)>0.000005 THEN 90
200	LET D=100.*((1./X1)-1.)
212	LET Y(1)=X(1)
215	LET U(1)=X(1)
230	LET V(1)=X(1)
240	FOR I=2 TO N
250	LET Y(I)=Y(I-1)+X(I)
260	LET U(I)=X(I)*(X1^(I-1))
270	LET V(I)=V(I-1)+U(I)
280	NEXT I
290	LET I=0
300	LET Y(0)=99.
310	LET V(N)=0.
320	LET I=I+1
330	IF I>N THEN 420
340	IF Y(I)=0 THEN 390
350	IF Y(I-1)<0 THEN 360
360	IF Y(I)>0 THEN 405
370	LET P1=0
380	GO TO 410
390	LET P1=I-1
400	GO TO 410
405	LET P1=I-2-Y(I-1)/(Y(I)-Y(I-1))
410	IF P1=0 THEN 320
420	PRINT
430	PRINT
440	PRINT"DISCOUNTED CASH FLOW CALCULATION"
450	PRINT
460	PRINT"     FOR TIME-VALUE-OF-MONEY = 0.0"
470	PRINT"          THE PAYBACK PERIOD = ";P1
480	PRINT
490	PRINT"               THIS PERIODS   CUMULATIVE FLOW"
500	PRINT"PERIOD         NET FLOW       END OF PERIOD"
510	PRINT
520	FOR I=1 TO N
530	PRINT (I-1),X(I),Y(I)
540	NEXT I
550	PRINT
560	PRINT"MORE OUTPUT WANTED (1=YES)",
570	INPUT I
580	IF I<>1 THEN 820
590	LET C1=100.*LOG(D/100.+1.)
600	LET D2=LOG(2)/LOG(1+D/100.)
610	PRINT
620	PRINT"     THE DISCOUNTED RATE OF RETURN (PERCENT):"
630	PRINT"           PERIOD BASIS: ";D
640	PRINT"             CONTINUOUS: ";C1
650	PRINT
660	PRINT"     THE DOUBLE-LIFE IS ";D2;"  PERIODS"
670	PRINT
680	PRINT"              PRESENT WORTH   CUMULATIVE"
690	PRINT"              THIS PERIODS    PRESENT WORTH"
700	PRINT"PERIOD        NET FLOW        END OF PERIOD"
710	PRINT
720	FOR I=1 TO N
730	PRINT (I-1),U(I),V(I)
740	NEXT I
750	GO TO 820
760	PRINT"THIS PROGRAM CALCULATES DISCOUNTED RATE OF RETURN (PERIOD"
770	PRINT"AND CONTINUOUS), THE DOUBLE-LIFE, AND PAYBACK PERIOD FOR A"
780	PRINT"SEQUENCE OF CASH FLOWS.  TO USE, TYPE:"
790	PRINT
800	PRINT"     10 DATA FLOW(1),FLOW(2),....,FLOW(N)"
810	PRINT"     RUN"
815	  PRINT
820	PRINT"LINES 11 THROUGH 49 CAN BE USED FOR ADDITIONAL DATA."
830	END
