10 REM GENERA3 BY TIMO SALMI. ANNUITY DEPRECIATION 20 REM NO NET CURRENT ASSETS "C" 30 REM GENERATES THE SERIES FOR G(T),F(T),D(T),P(T),V(T) 40 REM G(T) = CAPITAL EXPENDITURES IN YEAR T 50 REM F(T) = FUNDS FROM OPERATIONS IN YEAR I 60 REM I.E. REVENUES DUE TO CAPITAL EXPENDITURES 70 REM D(T) = DEPRECIATION 80 REM P(T) = OPERATING INCOME (ACCOUNTANT'S PROFIT) 90 REM V(T) = CAPITAL STOCK AT THE END OF YEAR T 100 REM 110 REM WHEN GIVEN K,B(N),G(0) 120 REM K = GROWTH RATE 130 REM B(N) = CONTRIBUTION COEFFICIENTS 140 REM G(0) = FIRST CAPITAL EXPENDITURE 150 REM 160 DIM G(60), B(60) 170 PRINT 180 PRINT "FINANCIAL DATA GENERATION FOR SALMI-LUOMA, BY TIMO SALMI" 190 PRINT "ANNUITY DEPRECIATION, NO NET CURRENT ASSETS" 200 PRINT 210 PRINT "IDENTIFICATION"; 220 INPUT A$ 230 PRINT 240 PRINT "GIVE THE NUMBER OF YEARS TO BE SIMULATED"; 250 INPUT T1 260 IF T1 >= 60 THEN GOTO 240 270 PRINT "GIVE GROWTH K"; 280 INPUT K 290 PRINT "GIVE FIRST CAPITAL EXPENDITURE G(0)"; 300 INPUT G(1) 310 FOR I = 1 TO 60 320 LET B(I) = 0 330 NEXT I 340 PRINT "GIVE THE MAXIMUM LAG IN CONTRIBUTION DISTRIBUTION"; 350 INPUT N1 360 IF N1 >= 60 THEN GOTO 340 370 PRINT "GIVE THE CONTRIBUTION COEFFICIENTS B(I)" 380 FOR I = 0 TO N1 390 PRINT "B("; I; ")"; 400 INPUT B(I + 1) 410 NEXT I 420 GOSUB 710 430 REM (App. V cont. ) 440 REM *** COMPUTING THE TIME SERIES ** 450 LET V = 0 460 PRINT 470 PRINT " capital funds from depreciat"; 480 PRINT " operating book" 490 PRINT " expendit operations "; 500 PRINT " income value" 510 PRINT "T G(T) F(T) D(T) "; 515 PRINT " P(T) V(T)" 520 PRINT 530 FOR T = 0 TO T1 540 LET G(T + 2) = (1 + K) * G(T + 1) 550 LET F = 0 560 IF T > N1 THEN GOTO 580 570 LET N2 = T 580 FOR I = 0 TO N2 590 LET F = F + B(I + 1) * G(T - I + 1) 600 NEXT I 610 LET P = R * V 620 LET D = F - P 630 LET V = V + G(T + 1) - D 640 PRINT USING "##"; T; 650 PRINT USING "###########.####"; G(T + 1); 660 PRINT USING "#########.####"; F; D; P; V 670 NEXT T 680 PRINT 690 PRINT "INTERNAL RATE OF RETURN ="; 100 * R; "%" 700 END 710 REM 720 REM INTERNAL RATE OF RETURN SUBROUTINE 730 REM THE SECANT METHOD 740 LET H = 1 750 LET X1 = 0 760 LET x2 = .2 770 FOR J = 1 TO 30 780 LET X = X1 790 GOSUB 930 800 LET Y1 = Y 810 LET X = x2 820 GOSUB 930 830 LET Y2 = Y 840 LET X = (X1 * Y2 - x2 * Y1) / (Y2 - Y1) 850 LET X1 = x2 860 LET x2 = X 870 IF ABS(x2 - X1) < .000001 THEN GOTO 910 880 NEXT J 890 PRINT "IRR-ALGORITHM FAILED IN 30 ITERATIONS" 900 END 910 LET R = x2 920 RETURN 930 REM PRESENT VALUE SUBROUTINE 940 LET Y = -H 950 FOR I = 0 TO N1 960 LET Y = Y + B(I + 1) / (1 + X) ^ I 970 NEXT I 980 RETURN 1000 END