5  REM  HP CONTRIBUTED LIBRARY, 2/75
10  REM ROUNDING INTEGER FUNCTION
20  DEF FNA()=(INT(*10000))/100
30  REM RANDOM NUMBER GENERATOR
40  DEF FNB()=SQR(-LOG(RND(0)))*(COS(6.28318*)+SIN(6.28318*))
50  REM INITIALIZE
60  DIM U[7],Z$[3],Y$[3],X$[3],E[50],M[4],D[4]
70  DIM A[200],R[200],L[200]
80  MAT E=ZER
90  MAT A=ZER
100  MAT L=ZER
110  REM DATA FOR PROBABILITY DISTRIBUTION
120  DATA .9987,.9772,.8413,.5,.1587,.0228,.0013
130  FOR K7=1 TO 7
140  READ U[K7]
150  NEXT K7
160  PRINT "WANT INSTRUCTIONS";
170  INPUT Z$
180  IF Z$="YES" THEN 1890
190  PRINT "NUMBER OF ITERATIONS DESIRED";
200  INPUT I9
210  PRINT "DO YOU WANT DETAILS FOR EACH ITERATION";
220  INPUT Z$
230  PRINT "DO YOU WANT SUMMARY OF EACH ITERATION";
240  INPUT Y$
250  REM READ PARAMETERS O PROBLEM
260  READ N
270  FOR J=1 TO 4
280  READ M[J],D[J]
290  NEXT J
300  PRINT "       ",'10'10'10"  MEAN","STD. DEV."'10
310  PRINT "SALES",M[1],D[1]
320  PRINT "FIXED COST",M[2],D[2]
330  PRINT "VAR. EXP. RATIO",M[3],D[3]
340  PRINT "LIFE",M[4],D[4]
350  PRINT "INVESTMENT ",N
360  REM DETERMINE ASSET LIFE THIS ITERATION
370  FOR I=1 TO I9
380  M=M[4]
390  D=D[4]
400  GOSUB 1400
410  V[4]=INT(X+.5)
420  IF V[4]<1 THEN 400
430  L[I]=V[4]
440  REM PRINT VALUES THIS ITERATION
450  IF Z$="NO" THEN 510
460  PRINT '10'10'10'10'10'10"ITERATION";I,"LIFE =";V[4];"YEARS"'10
470  PRINT "     ","  FIXED"," VARIABLE","COMPUTED"
480  PRINT "  SALES","EXPENSES","EXP. RATIO","EARNINGS"
490  PRINT "---------","--------","----------","--------"
500  REM GET RANDOM VALUES
510  FOR J=1 TO V[4]
520  FOR K=1 TO 3
530  M=M[K]
540  D=D[K]
550  GOSUB 1400
560  V[K]=X
570  NEXT K
580  REM COMPUTE DEPRECIATION
590  D=N/V[4]
600  REM COMPUTE EARNINGS
610  E[J]=V[1]-V[2]-(V[3]*V[1])-D
620  A[I]=E[J]+A[I]
630  IF Z$="NO" THEN 650
640  PRINT V[1],V[2],V[3],E[J]
650  NEXT J
660  REM TO FIND IRR
670  GOSUB 1440
680  R[I]=A
690  REM TO PRINT IRR
700  IF I1<261 THEN 740
710  PRINT "AFTER 260 ATTEMPTS THE INTERNAL RATE OF RETURN WAS NOT FOUND"
720  R[I]=999
730  GOTO 770
740  IF Z$="NO" THEN 770
750  PRINT '10"IRR =";FNA(A);"PERCENT"
760  REM TO COMPUTE AVERAGE EARNINGS
770  A[I]=A[I]/V[4]
780  NEXT I
790  REM PRINT SUMMARY
800  PRINT TAB(8)'10'10'10'10"***SUMMARY OF SIMULATION RESULTS***"'10'10
810  PRINT "                               AVERAGE      INTERNAL"
820  PRINT "ITERATION      LIFE            ANNUAL       RATE OF"
830  PRINT "                               EARNINGS      RETURN"
840  PRINT "---------   ---------         ---------    ---------"
850  IF Y$="NO" THEN 940
860  FOR I=1 TO I9
870  PRINT I,L[I],A[I],
880  IF R[I]=999 THEN 910
890  PRINT FNA(R[I])
900  GOTO 920
910  PRINT 
920  NEXT I
930  REM COMPUTE MEAN AND ST. DEV.
940  T=T1=K1=0
950  FOR I=1 TO I9
960  T=T+A[I]
970  IF R[I]=999 THEN 1000
980  T1=T1+R[I]
990  K1=K1+1
1000  NEXT I
1010  A=T/I9
1020  R9=T1/K1
1030  PRINT '10"       MEAN        ",A,FNA(R9)
1040  T=T1=K1=0
1050  FOR I=1 TO I9
1060  T=T+((A[I]-A)^2)
1070  IF R[I]=999 THEN 1100
1080  T1=T1+((R[I]-R9)^2)
1090  K1=K1+1
1100  NEXT I
1110  D=SQR(T/I9)
1120  D1=SQR(T1/K1)
1130  PRINT "STANDARD DEVIATION ",D,FNA(D1)
1140  REM PRINT DUM PROB. DIST.
1150  PRINT '10'10'10'10'10"***CUMULATIVE PROBABILITY DISTRIBUTION***"'10'10
1160  PRINT "               EARNINGS         I.R.R."
1170  PRINT "PRO"'2"ABILITY    GREATER         GREATER"
1180  PRINT "                 THAN           THAN"
1190  PRINT "-----------    ---------       --------"
1200  FOR K8=1 TO 7
1210  R7=R9+(D1*(K8-4))
1220  PRINT U[K8],A+(D*(K8-4)),FNA(R7)
1230  NEXT K8
1240  PRINT '10'10'10'10'10"WANT TO CHANGE A VARIABLE";
1250  INPUT X$
1260  IF X$="NO" THEN 1380
1270  PRINT "WHICH:"
1280  PRINT "1. INVESTMENT, 2. SALES, 3. FIXED COSTS, 4. VARIABLE"
1290  PRINT "COST RATIO, 5. LIFE";
1300  INPUT C
1310  IF C>1 THEN 1350
1320  PRINT "GIVE NEW INVESTMENT";
1330  INPUT N
1340  GOTO 300
1350  PRINT "GIVE NEW MEAN AND STANDARD DEVIATION";
1360  INPUT M[C-1],D[C-1]
1370  GOTO 300
1380  END 
1390  REM SUB TO GET RANDOM VARIABLE FROM NORMAL DISTRIBUTION
1400  X=(FNB(RND(1))*D)+M
1410  RETURN 
1420  REM SUB TO COMPUTE IRR
1430  REM TO MOVE VALUES UP IN ARRAY
1440  FOR I8=V[4]+1 TO 2 STEP -1
1450  E[I8]=E[I8-1]
1460  NEXT I8
1470  E[1]=(N*-1)
1480  REM INITIALIZE TOTAL
1490  S=E[1]
1500  REM INITIALIZE WIDTH
1510  E=.001
1520  REM SUM FLOWS
1530  FOR I1=2 TO V[4]+1
1540  S=S+(E[I1]+D)
1550  NEXT I1
1560  REM INITIALIZE
1570  R2=0
1580  V2=S
1590  W=.01
1600  REM SEE IF IRR NEG.
1610  IF S<0 THEN 1630
1620  GOTO 1650
1630  W=-.01
1640  REM CALCULATE IRR
1650  R1=W
1660  REM START 260 TRYS
1670  FOR I1=1 TO 260
1680  R0=R1+1
1690  V1=E[1]/R0
1700  REM CALCULATE IF FACTOR
1710  FOR J1=2 TO V[4]+1
1720  V1=V1+(E[J1]+D)/R0^J1
1730  NEXT J1
1740  REM CALCULATE PV
1750  IF (V2*V1)>0 THEN 1820
1760  REM DESIRED PRECISION?
1770  IF (ABS(R1-R2))<E THEN 1870
1780  REM HALVE WIDTH OF SEARCH
1790  W=W/2
1800  R1=R2+W
1810  GOTO 1850
1820  R2=R1
1830  V2=V1
1840  R1=R1+W
1850  NEXT I1
1860  I1=261
1870  A=R2
1880  RETURN 
1890  PRINT "THIS PROGRAM SIMULATES THE EFFECTS OF AN INVESTMENT."
1900  PRINT "FROM DATA ENTERED, THE COMPUTER WILL RANDOMLY SELECT"
1910  PRINT "(FROM A NORMAL DISTRIBUTION) VALUES FOR THE SALES, FIXED"
1920  PRINT "COSTS, VARIABLE COSTS, AND LIFE OF AN INVESTMENT.  IT"
1930  PRINT "IT WILL THEN REPORT THE EARNINGS IN EACH YEAR OF THE"
1940  PRINT "LIFE AND THE INTERNAL RATE OF RETURN OVER THE LIFE OF THE"
1950  PRINT "PROJECT.  SUMMARIES OF RESULTS ARE PRESENTED."
1960  PRINT '10"TO USE THIS PROGRAM, ENTER IN DATA STATEMENTS (BEGINNING"
1970  PRINT "IN LINE 9000) THE FOLLOWING INFORMATION: 1. THE AMOUNT"
1980  PRINT "OF THE ORIGINAL INVESTMENT; 2. THE MEAN AND STD. DEV."
1990  PRINT "OF THE SALES; (3) THE MEAN AND STD. DEV. OF THE FIXED"
2000  PRINT "COSTS; (4) THE MEAN AND STD. DEV. OF THE VARIABLE COST"
2010  PRINT "RATIO; (5) THE MEAN AND STD. DEV. OF THE LIFE OF THE"
2020  PRINT "PROJECT.  "
9000  DATA 90000.
9001  DATA 100000.,10000
9002  DATA 10000,1000
9003  DATA .6,.08
9004  DATA 10,2
9999  END 
