8890 REM *** HP BASIC PROGRAM LIBRARY ******************************* 8891 REM 8892 REM CSHFL: CASH FLOW ANALYSIS 8893 REM 8894 REM 36142 REV B 2/73 8895 REM 8896 REM *** CONTRIBUTED PROGRAM *************************************** 9001 REM 9002 REM CASH FLOW ANALYSIS 9003 PRINT "WHAT IS THE ESTIMATED COST OF CAPITAL IN PERCENT"; 9004 INPUT R 9005 LET R=ABS(R/100) 9006 DIM B[121],W[121],X[121],Y[121],Z[121] 9007 PRINT "WHAT IS NUMBER OF PERIODS"; 9008 INPUT N 9009 IF N>0 THEN 9012 9010 PRINT "PROGRAM IS DESIGNED FOR AT LEAST ONE PERIOD. TRY AGAIN" 9011 GOTO 9152 9012 IF N<121 THEN 9015 9013 PRINT "PROGRAM DESIGNED FOR LESS THAN 121 PERIODS. TRY AGAIN" 9014 GOTO 9152 9015 PRINT "HOW MANY FLOWS ARE BEING CONSIDERED,1,2,3,OR 4"; 9016 INPUT F 9017 PRINT 9018 IF F>1 THEN 9025 9019 PRINT "ENTER CASH FLOW, MINUS FOR OUTLAYS" 9020 FOR I=0 TO N 9021 PRINT "PERIOD"I;"INCOME"; 9022 INPUT W[I+1] 9023 NEXT I 9024 GOTO 9046 9025 IF F>2 THEN 9033 9026 PRINT "ENTER CASH FLOWS,SEPARATE BY COMMA,MINUS FOR OUTLAYS" 9027 PRINT " "," FLOW 1,FLOW 2" 9028 FOR I=0 TO N 9029 PRINT "PERIOD"I;"INCOME"; 9030 INPUT W[I+1],X[I+1] 9031 NEXT I 9032 GOTO 9046 9033 PRINT "ENTER CASH FLOWS, SEPARATE BY COMMAS,MINUS FOR OUTLAYS" 9034 IF F>3 THEN 9041 9035 PRINT " "," FLOW 1,FLOW 2,FLOW 3" 9036 FOR I=0 TO N 9037 PRINT "PERIOD"I;"INCOME"; 9038 INPUT W[I+1],X[I+1],Y[I+1] 9039 NEXT I 9040 GOTO 9046 9041 PRINT " "," FLOW 1,FLOW 2,FLOW 3,FLOW 4" 9042 FOR I=0 TO N 9043 PRINT "PERIOD"I;"INCOME"; 9044 INPUT W[I+1],X[I+1],Y[I+1],Z[I+1] 9045 NEXT I 9046 PRINT 9047 LET P1=0 9048 LET D=1 9049 LET S=0 9050 LET S1=0 9051 PRINT "FLOW 1" 9052 FOR I=0 TO N 9053 LET S1=S1+W[I+1] 9054 LET B[I+1]=W[I+1] 9055 GOSUB 9149 9056 LET P1=P1+W[I+1]/(R+1)^I 9057 IF S=1 THEN 9062 9058 IF P1<0 THEN 9062 9059 IF I=0 THEN 9061 9060 PRINT "PAYBACK FOR INITIAL INVESTMENT ON FLOW 1 IS IN PERIOD"I 9061 LET S=1 9062 NEXT I 9063 PRINT "PRESENT VALUE OF FLOW 1 IS"P1 9064 IF D>0 THEN 9066 9065 GOSUB 9131 9066 PRINT 9067 IF F<2 THEN 9152 9068 PRINT "FLOW 2" 9069 LET S1=0 9070 LET S=0 9071 LET P2=0 9072 LET D=1 9073 FOR I=0 TO N 9074 LET S1=S1+X[I+1] 9075 LET B[I+1]=X[I+1] 9076 LET P2=P2+X[I+1]/(R+1)^I 9077 GOSUB 9149 9078 IF S=1 THEN 9083 9079 IF P2<0 THEN 9083 9080 IF I=0 THEN 9082 9081 PRINT "PAYBACK FOR INITIAL INVESTMENT ON FLOW 2 IS IN PERIOD"I 9082 LET S=1 9083 NEXT I 9084 PRINT "PRESENT VALUE OF FLOW 2 IS"P2 9085 IF D>0 THEN 9087 9086 GOSUB 9131 9087 IF F<3 THEN 9152 9088 PRINT 9089 PRINT "FLOW 3" 9090 PRINT 9091 LET S1=0 9092 LET S=0 9093 LET P3=0 9094 LET D=1 9095 FOR I=0 TO N 9096 LET S1=S1+Y[I+1] 9097 LET B[I+1]=Y[I+1] 9098 LET P3=P3+Y[I+1]/(R+1)^I 9099 GOSUB 9149 9100 IF S=1 THEN 9105 9101 IF P3<0 THEN 9105 9102 IF I=0 THEN 9104 9103 PRINT "PAYBACK FOR INITIAL INVESTMENT ON FLOW 3 IS IN PERIOD"I 9104 LET S=1 9105 NEXT I 9106 PRINT "PRESENT VALUE OF FLOW 3 IS"P3 9107 IF D>0 THEN 9109 9108 GOSUB 9131 9109 PRINT 9110 IF F<4 THEN 9152 9111 LET S1=0 9112 LET S=0 9113 LET P4=0 9114 PRINT "FLOW 4" 9115 LET D=1 9116 FOR I=0 TO N 9117 LET S1=S1+Z[I+1] 9118 LET B[I+1]=Z[I+1] 9119 GOSUB 9149 9120 LET P4=P4+Z[I+1]/(R+1)^I 9121 IF S=1 THEN 9126 9122 IF P4<0 THEN 9126 9123 IF I=0 THEN 9125 9124 PRINT "PAYBACK FOR INITIAL INVESTMENT ON FLOW 4 IS IN PERIOD"I 9125 LET S=1 9126 NEXT I 9127 PRINT "PRESENT VALUE OF FLOW 4 IS"P4 9128 IF D>0 THEN 9152 9129 GOSUB 9131 9130 GOTO 9152 9131 LET C=0 9132 LET P=0 9133 LET Q=0 9134 FOR T=0 TO N 9135 LET P=P+B[T+1]*EXP(C*(-T)) 9136 LET Q=Q+T*B[T+1]*EXP(C*(-T)) 9137 NEXT T 9138 LET C=C+P/Q 9139 IF C >= 0 THEN 9142 9140 PRINT "OUTLAY EXCEEDS INCOME BY"-S1 9141 GOTO 9148 9142 IF (EXP(C)-1)<10 THEN 9145 9143 PRINT "RATE OF RETURN EXCEEDS 1000 PERCENT" 9144 GOTO 9148 9145 IF ABS(P/Q)>.00001 THEN 9132 9146 LET C=EXP(C)-1 9147 PRINT "RATE OF RETURN EQUATING P.V. OF FLOW TO ZERO IS";C*100;"PERCENT" 9148 RETURN 9149 IF B[I+1] >= 0 THEN 9151 9150 LET D=-1 9151 RETURN 9152 STOP 9999 END