1  REM ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM       GFNRAT: FINANCIAL RATIOS
4  REM
5  REM       36510 REV A
6  REM
7  REM ****  CONTRIBUTED PROGRAM  ***********************************
100  REM   NAME -- FNRAT
110  REM   FUNCTION -- COMPUTES 12 FINANCIAL RATIOS
120  REM   REFERENCE -- VAN HORNE, 'FINANCIAL MANAGEMENT AND POLICY'
130  REM                 CHAPTER 24
140  REM   SPONSOR -- PROF. VAN HORNE
150  REM   PROGRAMMERS --
160  REM      D. NIEBUHR (MAY 1969)
170  REM      W. SHARPE (JAN 1971)
180  REM   DATA -- NONE
190  REM   INPUTS -- BALANCE SHEET AND INCOME STATEMENT DATA
200  REM   OUTPUTS -- FINANCIAL RATIOS
210  REM   FILES -- NONE
220  REM --------------------------------------------------------
230  REM -- D(1) THROUGH D(14) ARE INPUT VALUES
240  DIM D[14]
250  REM ---------------------------------------------------------
251  REM -- DETERMINE INPUT SOURCE
252  PRINT "PLEASE INDICATE INPUT SOURCE --"
253  PRINT "  'T'  FOR TERMINAL"
254  PRINT "  'D'  FOR DATA STATEMENTS"
255  PRINT "SOURCE -- ";
256  INPUT S$
257  REM ------------------------------------------------------
258  IF S$[1,1]="D" THEN 900
260  REM -- GET INPUTS
270  PRINT "NET RECEIVABLES --  ";
280  GOSUB 8000
281  LET D[1]=Z9
290  PRINT "NET INVENTORIES --  ";
300  GOSUB 8000
301  LET D[2]=Z9
310  PRINT "NET INVENTORIES -- PREVIOUS YEAR-END --  ";
320  GOSUB 8000
321  LET D[3]=Z9
330  PRINT "CURRENT ASSETS --  ";
340  GOSUB 8000
341  LET D[4]=Z9
350  PRINT "TOTAL ASSETS --  ";
360  GOSUB 8000
361  LET D[5]=Z9
370  PRINT 
380  PRINT "CURRENT LIABILITIES --  ";
390  GOSUB 8000
391  LET D[6]=Z9
400  PRINT "PREFERRED STOCK --  ";
410  GOSUB 8000
411  LET D[7]=Z9
420  PRINT "COMMON STOCK --  ";
430  GOSUB 8000
431  LET D[8]=Z9
440  PRINT "CAPITAL AND EARNED SURPLUS --  ";
450  GOSUB 8000
451  LET D[9]=Z9
460  PRINT 
470  PRINT "NET SALES --  ";
480  GOSUB 8000
481  LET D[10]=Z9
490  PRINT "COST OF GOODS SOLD --  ";
500  GOSUB 8000
501  LET D[11]=Z9
510  PRINT "SELLING, GENERAL AND ADMINISTRATIVE EXPENSES --  ";
520  GOSUB 8000
521  LET D[12]=Z9
530  PRINT "NET PROFIT --  ";
540  GOSUB 8000
541  LET D[13]=Z9
550  PRINT "DIVIDENDS ON PREFERRED STOCK --  ";
560  GOSUB 8000
561  LET D[14]=Z9
570  PRINT 
580  PRINT "-------------------------------------------------------"
590  PRINT 
600  REM
610  REM ---------------------------------------------------------
620  REM -- COMPUTE RATIOS
630  LET C=D[4]/D[6]
640  PRINT "CURRENT RATIO:  ";C
650  LET A=C-D[2]/D[6]
660  PRINT "ACID TEST RATIO:  ";A
670  LET R1=D[10]/D[1]
680  PRINT "RECEIVABLES TURNOVER:  ";R1;"TIMES"
690  LET I1=D[11]/((D[2]+D[3])/2)
700  PRINT "AVERAGE INVENTORY TURNOVER:  ";I1;"TIMES"
710  LET D0=D[5]-D[6]-D[7]-D[8]-D[9]
720  LET D1=D0/(D[5]-D[6])
730  PRINT "LT DEBT/TOTAL CAPITALIZATION:  ";D1
740  LET D2=(D0+D[6])/(D[7]+D[8]+D[9])
750  PRINT "TOTAL DEBT TO EQUITY:  ";D2
760  LET M=(D[10]-D[11])/D[10]
770  PRINT "GROSS PROFIT MARGIN:  ";100*M;"PERCENT"
780  LET S1=D[12]/D[10]
790  PRINT "SELLING, GENERAL AND ADMIN. EXPENSES TO SALES:  ";100*S1;
800  PRINT "PERCENT"
810  LET M2=D[13]/D[10]
820  PRINT "NET PROFIT MARGIN:  ";100*M2;"PERCENT"
830  LET R2=(D[13]-D[14])/(D[8]+D[9])
840  PRINT "RATE OF RETURN ON COMMON STOCK EQUITY: ";100*R2;"PERCENT"
850  LET T=D[10]/D[5]
860  PRINT "TURNOVER RATIO:  ";T;"TIMES"
870  LET E=D[13]/D[5]
880  PRINT "EARNING POWER:  ";100*E;"PERCENT"
890  STOP 
900  PRINT "HAVE YOU ENTERED THE DATA STATEMENTS";
902  DIM V$[15]
904  INPUT V$
906  IF V$[1,1]="Y" THEN 260
910  PRINT "ENTER VALUES IN THE ORDER CALLED FOR WHEN"
912  PRINT "THE PROGRAM IS RUN WITH INPUT FROM THE"
914  PRINT "TERMINAL. DATA STATEMENTS SHOULD BE ENTERED"
916  PRINT "BEGINNING AT LINE 9000."
918  PRINT "WHEN YOU HAVE ENTERED THE DATA STATEMENTS, RE-RUN THE PROGRAM."
920  STOP 
8000  REM -----------------------------------------------------
8005  REM -- SUBROUTINE TO GET NEXT VALUE
8010  IF S$="T" THEN 8020
8012  REM -- READ NEXT DATA STATEMENT
8013  READ Z9
8014  PRINT Z9
8015  RETURN 
8020  REM -- INPUT VALUE
8021  INPUT Z9
8022  RETURN 
9999  END 
