10 DATA 350000.,24500,35000.,12,50 20 DATA 2,0,184320.,0 30 DATA 1,1,12,35000. 40 DATA 2,0,99648.,0 50 DATA 1,2,5,25000,10,25000 60 DATA 4,0,12 994 REM ******************************** 995 REM ***** HOUSEKEEPING ***** 996 REM ******************************** 1000 DIM A[50],B[50],C[50],D[50],E[50] 1010 DIM F[50],G[50],H[50],X[50],Y[50] 1015 DIM U[50] 1020 DIM Q$[3] 1030 MAT A=ZER 1040 MAT B=ZER 1050 MAT C=ZER 1060 MAT D=ZER 1070 MAT E=ZER 1080 MAT F=ZER 1090 MAT G=ZER 1100 MAT H=ZER 1110 MAT X=ZER 1120 MAT Y=ZER 1500 PRINT " CAPITAL INVESTMENT ANALYSIS" 1502 PRINT 1504 PRINT "ENTER TIME PERIOD TO BE USED FOR CASH FLOWS AND LIFE:" 1505 PRINT " (1)ANNUAL, (2)SEMI-ANNUAL, (3)QUARTERLY, (4)MONTHLY"; 1506 INPUT K 1508 K=(K=1)+2*(K=2)+4*(K=3)+12*(K=4) 1510 PRINT 1520 PRINT "IS INPUT FROM (1)DATA STATEMENTS OR (2)CONVERSATIONALLY"; 1540 INPUT Q2 1550 GOTO Q2 OF 3000,2000 1560 PRINT "ERROR IN INPUT, RE-ENTER"; 1570 GOTO 1540 1994 REM **************************************** 1995 REM ***** CONVERSATIONAL INPUT ***** 1996 REM **************************************** 2000 PRINT 2002 PRINT "INVESTMENT AMOUNT"; 2010 INPUT I1 2020 PRINT "INVESTMENT TAX CREDIT AMOUNT"; 2030 INPUT C1 2040 PRINT "SALVAGE VALUE"; 2050 INPUT S1 2060 PRINT "LIFE OF INVESTMENT"; 2070 INPUT L1 2080 PRINT "INCOME TAX RATE"; 2090 INPUT T1 2095 PRINT 2100 GOSUB 7100 2110 GOSUB 7300 2120 PRINT 2130 PRINT "ANY EXTRAORDINARY EARNINGS"; 2140 GOSUB 7000 2150 IF A=0 THEN 2154 2152 GOSUB 7500 2153 PRINT 2154 PRINT "ANY NORMAL EXPENSES"; 2156 GOSUB 7000 2158 IF A=1 THEN 2170 2160 X1=0 2162 GOTO 2200 2170 GOSUB 7600 2180 GOSUB 7800 2190 PRINT 2200 PRINT "ANY EXTRAORDINARY EXPENSES"; 2210 GOSUB 7000 2220 IF A=0 THEN 2240 2230 GOSUB 8000 2240 GOSUB 8100 2250 GOSUB 8300 2260 GOTO 4000 2994 REM **************************************** 2995 REM ***** READ DATA STATEMENTS ***** 2996 REM **************************************** 3000 READ I1,C1,S1,L1,T1 3010 READ E1 3020 IF E1=1 THEN 3050 3030 READ E2,E3,E4 3040 GOTO 3080 3050 FOR I=1 TO L1 3060 READ E[I] 3070 NEXT I 3080 READ E5 3090 IF E5=0 THEN 3150 3100 READ E6 3110 FOR I=1 TO E6 3120 READ E7,E8 3130 A[E7]=E8 3140 NEXT I 3150 READ X1 3160 IF X1=1 THEN 3190 3170 READ X2,X3,X4 3180 GOTO 3220 3190 FOR I=1 TO L1 3200 READ X[I] 3210 NEXT I 3220 READ X5 3230 IF X5=0 THEN 3290 3240 READ X6 3250 FOR I=1 TO X6 3260 READ X7,X8 3270 Y[X7]=X8 3280 NEXT I 3290 READ D1 3300 IF D1=1 THEN 3330 3310 READ D2,D3 3320 GOTO 4000 3330 FOR I=1 TO L1 3340 READ D[I] 3350 NEXT I 3994 REM ******************************* 3995 REM ***** CALCULATIONS ***** 3996 REM ******************************* 4000 GOTO E1 OF 4180,4010,4050,4100,4144 4010 FOR I=1 TO L1 4020 E[I]=E3 4030 NEXT I 4040 GOTO 4180 4050 E9=INT((E3-(E4*.01*E3))/(E2-1)) 4060 FOR I=1 TO E2 4070 E[I]=E3-(I-1)*E9 4080 NEXT I 4090 GOTO 4180 4100 E4=E4*.01 4104 E0=E3*E4 4108 E[1]=E3 4112 FOR N=2 TO E2 4116 E[N]=E[N-1]-(((2*(E2-N+1)*(E3-E0)))/(E2*(E2-1))) 4120 NEXT N 4140 GOTO 4180 4144 E4=E4*.01 4146 E0=E3*E4 4148 E[1]=E3 4152 FOR N=2 TO E2 4156 E[N]=E[N-1]-(((2*(N-1)*(E3-E0)))/(E2*(E2-1))) 4159 NEXT N 4180 GOTO X1 OF 4360,4190,4230,4280,4340 4182 IF X1=0 THEN 4360 4184 PRINT "ERROR LINE 2184" 4190 FOR I=1 TO L1 4200 X[I]=X3 4210 NEXT I 4220 GOTO 4360 4230 X9=INT((X3-(X4*.01*X3))/(X2-1)) 4240 FOR I=1 TO X2 4250 X[I]=X3-(I-1)*X9 4260 NEXT I 4270 GOTO 4360 4280 X4=X4*.01 4283 X0=X3*X4 4286 X[1]=X3 4289 FOR N=2 TO X2 4291 X[N]=X[N-1]-(((2*(X2-N+1)*(X3-X0)))/(X2*(X2-1))) 4294 NEXT N 4300 GOTO 4360 4340 X4=X4*.01 4343 X0=X3*X4 4346 X[1]=X3 4349 FOR N=2 TO X2 4352 X[N]=X[N-1]-(((2*(N-1)*(X3-X0)))/(X2*(X2-1))) 4355 NEXT N 4360 GOTO D1 OF 4520,4370,4420,4490 4370 D[1]=(1-(D2*.01))*(I1-S1)/D3 4380 FOR N=2 TO D3 4390 D[N]=D[1] 4400 NEXT N 4410 GOTO 4520 4420 D4=I1-S1 4430 D5=(1-(D2*.01))*D4 4440 FOR N=1 TO D3 4450 D[N]=D5*2/D3 4460 D5=D5-D[N] 4470 NEXT N 4480 GOTO 4520 4490 FOR N=1 TO D3 4500 D[N]=(2/(D3*(D3+1)))*(D3+1-N)*(1-(D2*.01))*(I1-S1) 4510 NEXT N 4520 FOR I=1 TO L1 4530 B[I]=E[I]+A[I]-X[I]-Y[I] 4540 C[I]=B[I]-D[I] 4550 F[I]=C[I]*(1-(T1*.01)) 4560 G[I]=C[I]-F[I]+D[I] 4570 NEXT I 4580 U9=L1+1 4590 U[1]=-(I1-C1) 4600 FOR I=2 TO L1+1 4610 U[I]=G[I-1] 4620 NEXT I 4630 GOSUB 9000 4640 R=U 4650 FOR I=1 TO L1 4660 H[I]=G[I]/(1+(R/100))^I 4670 NEXT I 4680 R=((1+(R/100))^K-1)*100 4690 GOTO 5000 4994 REM ********************************* 4995 REM ***** OUTPUT REPORT ***** 4996 REM ********************************* 5000 PRINT LIN(3) 5001 PRINT USING 5002;R 5002 IMAGE "RETURN ON INVESTMENT IS ",X,DDD.DDDD,X,"PERCENT (ANNUAL)" 5003 PRINT LIN(2) 5004 PRINT "DO YOU WISH A COMPLETE REPORT"; 5005 GOSUB 7000 5006 IF A=0 THEN 5950 5007 PRINT LIN(5) 5008 PRINT TAB(23),"CAPITAL INVESTMENT ANALYSIS" 5010 PRINT 5020 PRINT USING 5030;I1,S1 5030 IMAGE 2X,"INVESTMENT COST",8X,8D,7X,"SALVAGE VALUE",4X,7D 5040 PRINT USING 5050;C1 5050 IMAGE #,2X,"INVESTMENT TAX CREDIT",4X,6D,7X 5060 PRINT USING 5070;L1 5070 IMAGE "LIFE OF INVESTMENT",4X,2D,3X,"YEARS" 5080 PRINT USING 5090;I1-C1 5090 IMAGE #,2X,"NET INVESTMENT COST",4X,8D,7X 5100 PRINT USING 5110;T1 5110 IMAGE "INCOME TAX RATE",4X,DD.DD,X,"PERCENT" 5120 PRINT LIN(3) 5130 PRINT USING 5140 5140 IMAGE #,12X,"NORMAL",7X,"EXTRA",8X,"NORMAL" 5150 PRINT USING 5160 5160 IMAGE 7X,"EXTRA",6X,"BEFORE TAX" 5170 PRINT USING 5180 5180 IMAGE #,"PERIOD",5X,"EARNINGS",5X,"EARNINGS" 5190 PRINT USING 5200 5200 IMAGE 5X,"EXPENSES",5X,"EXPENSES",5X,"CASH FLOW" 5210 PRINT LIN(2) 5220 FOR I=1 TO L1 5230 PRINT USING 5250;I,E[I],A[I],X[I],Y[I],B[I] 5240 NEXT I 5250 IMAGE X,3D,2X,5(5X,8D) 5260 PRINT LIN(3) 5270 PRINT USING 5272 5272 IMAGE #,24X,"TAXABLE",7X,"INCOME" 5276 PRINT USING 5278 5278 IMAGE 5X,"AFTER TAX",3X,"DISCOUNTED" 5280 PRINT USING 5282 5282 IMAGE #,"PERIOD",3X,"DEPRECIATION",4X,"INCOME" 5284 PRINT USING 5286 5286 IMAGE 8X,"TAX",7X,"CASH FLOW",4X,"CASH FLOW" 5290 PRINT LIN(2) 5300 T2=0 5310 FOR I=1 TO L1 5320 PRINT USING 5250;I,D[I],C[I],F[I],G[I],H[I] 5330 T2=T2+H[I] 5350 NEXT I 5360 PRINT LIN(2) 5370 PRINT USING 5380;T2 5380 IMAGE "TOTAL DISCOUNTED CASH FLOW",7X,8D 5390 PRINT USING 5400;I1-C1 5400 IMAGE "INITIAL INVESTMENT",15X,8D 5410 PRINT USING 5420;T2-(I1-C1) 5420 IMAGE "NET PRESENT VALUE OF INVESTMENT",9X,"0" 5455 PRINT LIN(5) 5950 PRINT USING 5952 5952 IMAGE #,"DO YOU WISH TO (1)QUIT, (2)ENTER NEW SET OF DATA, OR " 5955 PRINT USING 5957 5957 IMAGE "(3)CHANGE CURRENT DATA" 5960 INPUT Q2 5970 GOTO Q2 OF 9999,2000,6000 5980 PRINT "ERROR IN INPUT, RE-ENTER" 5990 GOTO 5960 5994 REM ******************************* 5995 REM ***** CHANGE DATA ***** 5996 REM ******************************* 6000 PRINT "CHANGE OPTIONS:" 6010 PRINT " 1-BASIC DATA" 6020 PRINT " 2-EARNINGS DATA" 6030 PRINT " 3-EXPENSE DATA" 6040 PRINT " 4-DEPRECIATION DATA" 6050 PRINT " 5-EXIT" 6060 PRINT "WHICH CHANGE OPTION"; 6070 INPUT Q2 6080 GOTO Q2 OF 6110,6410,6520,6640,5950 6090 PRINT "ERROR IN INPUT, RE-ENTER"; 6100 GOTO 6070 6110 PRINT "BASIC DATA OPTIONS:" 6120 PRINT " 1-INVESTMENT AMOUNT" 6130 PRINT " 2-INVESTMENT TAX CREDIT" 6140 PRINT " 3-SALVAGE VALUE" 6150 PRINT " 4-LIFE OF INVESTMENT" 6160 PRINT " 5-INCOME TAX RATE" 6170 PRINT " 6-EXIT" 6180 PRINT "WHICH BASIC DATA OPTION"; 6190 INPUT Q2 6200 GOTO Q2 OF 6230,6260,6290,6320,6350,6400 6210 PRINT "ERROR IN INPUT, RE-ENTER"; 6220 GOTO 6190 6230 PRINT "ENTER INVESTMENT AMOUNT"; 6240 INPUT I1 6250 GOTO 6370 6260 PRINT "ENTER INVESTMENT TAX CREDIT"; 6270 INPUT C1 6280 GOTO 6370 6290 PRINT "ENTER SALVAGE VALUE"; 6300 INPUT S1 6310 GOTO 6370 6320 PRINT "ENTER LIFE OF INVESTMENT"; 6330 INPUT L1 6340 GOTO 6370 6350 PRINT "ENTER INCOME TAX RATE"; 6360 INPUT T1 6370 PRINT "CHANGE MORE BASIC DATA"; 6380 GOSUB 7000 6390 IF A=1 THEN 6180 6400 GOTO 6700 6410 PRINT "CHANGE EARNINGS OPTION"; 6420 GOSUB 7000 6430 IF A=0 THEN 6450 6440 GOSUB 7100 6450 GOSUB 7300 6460 PRINT 6470 PRINT "CHANGE EXTRAORDINARY EARNINGS"; 6480 GOSUB 7000 6490 IF A=0 THEN 6710 6500 GOSUB 7500 6510 GOTO 6710 6520 PRINT 6530 PRINT "CHANGE EXPENSE OPTIONS"; 6540 GOSUB 7000 6550 IF A=0 THEN 6570 6560 GOSUB 7600 6570 GOSUB 7800 6580 PRINT 6590 PRINT "CHANGE EXTRAORDINARY EXPENSES"; 6600 GOSUB 7000 6610 IF A=0 THEN 6710 6620 GOSUB 8000 6630 GOTO 6710 6640 PRINT 6650 PRINT "CHANGE DEPRECIATION OPTION"; 6660 GOSUB 7000 6670 IF A=0 THEN 6690 6680 GOSUB 8100 6690 GOSUB 8300 6700 PRINT 6710 PRINT "ANY MORE CHANGES"; 6720 GOSUB 7000 6730 IF A=0 THEN 4000 6740 GOTO 6000 6994 REM ******************************* 6995 REM ***** SUBROUTINES ***** 6996 REM ******************************* 7000 INPUT Q$ 7010 IF Q$[1,1]="Y" THEN 7070 7020 IF Q$[1,1]="N" THEN 7050 7030 PRINT "YES OR NO, PLEASE"; 7040 GOTO 7000 7050 A=0 7060 GOTO 7080 7070 A=1 7080 RETURN 7090 REM **************************************** 7100 PRINT "EARNINGS OPTIONS:" 7110 PRINT " 1-EARNINGS FOR EACH PERIOD ARE ENTERED" 7120 PRINT " 2-UNIFORM EARNINGS" 7130 PRINT " 3-STRAIGHT LINE DECLINE" 7140 PRINT " 4-RAPID DECLINE IN EARLY YEARS" 7150 PRINT " 5-RAPID DECLINE IN LATER YEARS" 7160 PRINT " 6-EXIT" 7170 PRINT 7180 PRINT "WHICH OPTION"; 7190 INPUT E1 7200 IF E1<1 THEN 7230 7210 IF E1>6 THEN 7230 7220 GOTO 7250 7230 PRINT "ERROR IN INPUT, RE-ENTER"; 7240 GOTO 7190 7250 RETURN 7260 REM **************************************** 7300 GOTO E1 OF 7310,7370,7410,7410,7410,7470 7310 PRINT "FOR EACH PERIOD, ENTER EARNINGS" 7320 FOR I=1 TO L1 7330 PRINT I; 7340 INPUT E[I] 7350 NEXT I 7360 GOTO 7470 7370 PRINT "ENTER SINGLE EARNING AMOUNT"; 7380 E2=E4=0 7390 INPUT E3 7400 GOTO 7470 7410 PRINT "ENTER EARNINGS LIFE IN YEARS"; 7420 INPUT E2 7430 PRINT "ENTER INITIAL EARNINGS"; 7440 INPUT E3 7450 PRINT "ENTER % OF INITIAL VALUE TO BE FINAL"; 7460 INPUT E4 7465 E4=E4*.01 7470 RETURN 7480 REM **************************************** 7500 PRINT "ENTER THE NUMBER OF EXTRAORDINARY EARNINGS"; 7510 INPUT E6 7520 PRINT "FOR EACH EARNING, ENTER PERIOD # AND AMOUNT" 7530 FOR I=1 TO E6 7540 PRINT "EARNING # ";I; 7550 INPUT E7,E8 7560 A[E7]=E8 7570 NEXT I 7580 RETURN 7590 REM **************************************** 7600 PRINT "EXPENSE OPTIONS:" 7610 PRINT " 1-EXPENSES FOR EACH PERIOD ARE ENTERED" 7620 PRINT " 2-UNIFORM EXPENSES" 7630 PRINT " 3-STRAIGHT LINE DECLINE" 7640 PRINT " 4-RAPID DECLINE IN EARLY YEARS" 7650 PRINT " 5-RAPID DECLINE IN LATER YEARS" 7660 PRINT " 6-EXIT" 7670 PRINT 7680 PRINT "WHICH OPTION"; 7690 INPUT X1 7700 IF X1>6 THEN 7730 7710 IF X1<1 THEN 7730 7720 GOTO 7750 7730 PRINT "ERROR IN INPUT, RE-ENTER"; 7740 GOTO 7690 7750 RETURN 7760 REM **************************************** 7800 GOTO X1 OF 7810,7870,7910,7910,7910,7970 7810 PRINT "FOR EACH PERIOD, ENTER EXPENSES" 7820 FOR I=1 TO L1 7830 PRINT I; 7840 INPUT X[I] 7850 NEXT I 7860 GOTO 7970 7870 PRINT "ENTER UNIFORM EXPENSE AMOUNT"; 7880 X2=X4=0 7890 INPUT X3 7900 GOTO 7970 7910 PRINT "ENTER EXPENSE LIFE IN YEARS"; 7920 INPUT X2 7930 PRINT "INITIAL EXPENSE"; 7940 INPUT X3 7950 PRINT "ENTER % OF INITIAL EXPENSE TO BE FINAL VALUE"; 7960 INPUT X4 7970 RETURN 7980 REM **************************************** 8000 PRINT "ENTER THE NUMBER OF EXTRAORDINARY EXPENSES"; 8010 INPUT X6 8020 PRINT "FOR EACH EXPENSE, ENTER PERIOD # AND AMOUNT" 8030 FOR I=1 TO X6 8040 PRINT "EXPENSE # ";I; 8050 INPUT X7,X8 8060 Y[X7]=X8 8070 NEXT I 8080 RETURN 8090 REM **************************************** 8100 PRINT 8110 PRINT "DEPRECIATION OPTIONS;" 8120 PRINT " 1-EACH IS ENTERED" 8130 PRINT " 2-STRAIGHT LINE" 8140 PRINT " 3-DECLINING BALANCE" 8150 PRINT " 4-SUM OF YEARS DIGITS" 8160 PRINT " 5-EXIT" 8170 PRINT 8180 PRINT "WHICH OPTION"; 8190 INPUT D1 8200 IF D1>5 THEN 8230 8210 IF D1<1 THEN 8230 8220 GOTO 8250 8230 PRINT "ERROR IN INPUT, RE-ENTER"; 8240 GOTO 8190 8250 RETURN 8260 REM **************************************** 8300 IF D1=1 THEN 8370 8310 IF D1=5 THEN 8420 8320 PRINT "ENTER % OF INVESTMENT NOT TO BE DEPRECIATED"; 8330 INPUT D2 8340 PRINT "ENTER NUMBER OF YEARS TO DEPRECIATE"; 8350 INPUT D3 8360 GOTO 8420 8370 PRINT "FOR EACH PERIOD, ENTER DEPRECIATION" 8380 FOR I=1 TO L1 8390 PRINT I; 8400 INPUT D[I] 8410 NEXT I 8420 RETURN 9000 REM ***** DISCOUNTING SUBROUTINE ***** 9010 REM FLOWS IN ARRAY U(N) 9020 REM U9 - NUMBER OF PERIODS 9030 REM U - RETURNED INTEREST 9035 U=0 9040 U1=U2=0 9050 FOR U3=1 TO U9 9060 U4=U[U3]*EXP(-U*(U3-1)) 9070 U1=U1+U4 9080 U2=U2+(U3-1)*U4 9090 NEXT U3 9100 U=U+U1/U2 9110 IF ABS(U1/U2)>.00001 THEN 9040 9120 U=100*(EXP(U)-1) 9130 RETURN 9999 END