1  REM ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM       GTHOR: SECURITIES ESP GROWTH
4  REM
5  REM       36553 REV A
6  REM
7  REM ****  CONTRIBUTED PROGRAM  ***********************************
9  LET S=0
10  REM THOR
20  REM D.NIEBUHR, OCT.,1969
30  REM -- SPONSOR: PROF. MCDONALD
40  DIM A$[10]
50  DIM D[60]
60  DIM E[60]
70  PRINT 
80  PRINT "DO YOU WANT INSTRUCTIONS";
90  LET P9=.6
100  INPUT A$
110  LET G3=.04
120  IF A$[1,1]="N" THEN 300
130  PRINT 
140  PRINT 
150  PRINT "THIS PROGRAM FINDS THE NUMBER OF YEARS OF CONSTANT GROWTH ";
160  PRINT "IN EARNINGS PER SHARE REQUIRED TO JUSTIFY THE CURRENT SHARE"
170  PRINT "PRICE. YOU MUST SPECIFY THE INITIAL GROWTH RATE IN EPS AND";
180  PRINT "THE NUMBER OF YEARS DURING WHICH THIS GROWTH RATE WILL"
190  PRINT "DECLINE TO ";100*G3;"PERCENT (OR ";G3;") PER YEAR."
200  PRINT "   IN ADDITION TO PROVIDING THE NUMBER OF YEARS OF CONSTANT ";
210  PRINT "GROWTH REQUIRED AT THE RATE YOU SPECIFY, THE PROGRAM ALSO"
220  PRINT "PROVIDES THE PRESENT VALUES OF THE DIVIDENDS AND TERMINAL ";
230  PRINT "SHARE PRICE FOR ONE LESS YEAR OF GROWTH. THIS ENABLES"
240  PRINT "YOU TO EXAMINE THE SENSITIVITY OF YOUR ASSUMPTIONS."
250  PRINT "   IN COMPUTING ANNUAL DIVIDENDS THE PROGRAM ASSUMES THAT ";
260  PRINT "THE PAYOUT RATIO WILL REMAIN AT ITS CURRENT LEVEL FOR FIVE"
270  PRINT "YEARS AND THEN CHANGE GRADUALLY UNTIL IT REACHES ";P9;
280  PRINT "IN THE YEAR WHEN ANNUAL GROWTH IN EPS DROPS TO ";100*G3;"PERCENT."
290  PRINT 
300  PRINT "IF YOU WANT TO USE A FINAL GROWTH RATE OTHER THAN";G3;
310  PRINT "   TYPE IT (AS A DECIMAL); OTHERWISE TYPE";G3
320  PRINT "GROWTH RATE";
330  INPUT G3
340  REM P=SHARE PRICE,  D(1)=CURRENT DIVIDEND, K=DISCOUNT RATE
350  REM    G3=AD INFINITUM GROWTH RATE IN DPS
360  REM  E(I)=EARNINGS PER SHARE IN YEAR I
370  PRINT 
380  PRINT "WHAT IS THE CURRENT SHARE PRICE";
381  INPUT P
385  PRINT "EARNINGS PER SHARE";
386  INPUT E[1]
400  PRINT "INITIAL GROWTH RATE IN EPS (AS A DECIMAL)";
410  INPUT G1
420  PRINT "NUMBER OF YEARS OF DECLINING GROWTH";
430  INPUT N2
440  PRINT "THE DISCOUNT RATE (AS A DECIMAL)";
450  INPUT K
460  PRINT "THE CURRENT PAYOUT RATIO (AS A DECIMAL)";
470  INPUT P0
480  LET E[1]=E[1]*(1+G1)
490  LET D[1]=P0*E[1]
500  PRINT 
510  PRINT "YOUR INPUT IMPLIES A FINAL P/E RATIO OF";P9/(K-G3);
520  PRINT "  IF THIS IS NOT SATISFACTORY YOU MAY CHANGE IT BY TYPING"
530  PRINT "  ANOTHER P/E RATIO; OTHERWISE TYPE 0. VALUE";
540  INPUT I3
550  REM    P0=CURRENT PAYOUT RATIO
560  REM    Q0=ANNUAL CHANGE IN PAYPIT RATIO FROM YEAR 5 TO YEAR N
570  REM    G1=GROWTH RATE IN EPS DURING CONSTANT GROWTH PERIOD
580  REM   N2=NUMBER OF YEARS OF DECLINING GROWTH
590  IF K <= G3 THEN 1170
600  LET S0=E[1]*P9/(K-G3)
610  GOSUB 740
620  PRINT 
630  PRINT 
640  PRINT "PRICE OF";P;"ASSUMES";N1;"YEARS OF CONSTANT GROWTH IN EPS."
650  PRINT "     THE PRESENT VALUE(INTRINSIC VALUE) IS ";S
660  PRINT "        INTRINSIC VALUE FOR N1=";N1-1;"IS ";S0
665  PRINT "       SHARE PRICE IN";N;" YEARS= ";P2*(1+K)^N
670  PRINT 
680  PRINT "DO YOU WANT TO RUN MORE DATA";
690  INPUT A$
700  PRINT 
710  IF A$[1,1]="Y" THEN 300
720  STOP 
730  REM  THIS SUBROUTINE COMPUTES N1, GIVEN N2 AND G1
740  FOR N1=1 TO 40
750  LET S0=S
760  PRINT "-";
770  REM  THIS ROUTINE COMPUTES DIVDS. TO YEAR N AND SHARE PRICE
780  REM  AT YEAR N.
790  LET Q0=P9-P0
800  LET N=N1+N2
810  IF N <= 5 THEN 830
820  LET Q0=(P9-P0)/(N-5)
830  LET P1=P0
840  IF N1=1 THEN 910
850  FOR I=2 TO N1
860  LET E[I]=E[I-1]*(1+G1)
870  LET D[I]=E[I]*P1
880  IF I<5 THEN 900
890  LET P1=P1+Q0
900  NEXT I
910  LET G2=G1
920  LET F2=(G1-G3)/(N2+1)
930  FOR I=N1+1 TO N
940  LET G2=G2-F2
950  LET E[I]=E[I-1]*(1+G2)
960  LET D[I]=E[I]*P1
970  IF I<5 THEN 990
980  LET P1=P1+Q0
990  NEXT I
1000  LET D[N]=P9*E[N]
1010  LET P2=D[N]/(K-G3)
1020  IF I3=0 THEN 1040
1030  LET P2=I3*E[N]
1040  LET P2=P2/(1+K)^N
1050  LET S=0
1060  REM THIS ROUTINE COMPUTES PRES.VALUE OF DIVD. AND TERM.SHARE
1070  REM PRICE.
1080  LET F3=1
1090  FOR I=1 TO N
1100  LET F3=F3/(1+K)
1110  LET S=S+D[I]*F3
1120  NEXT I
1130  LET S=S+P2
1140  IF P<S THEN 1160
1150  NEXT N1
1160  RETURN 
1170  PRINT "DISCOUNT RATE MUST BE GREATER THAN";G3;"(FINAL EPS GROWTH";
1180  PRINT " RATE)."
1190  GOTO 670
1200  END 
