1 REM **** HP BASIC PROGRAM LIBRARY *************************** 2 REM 3 REM GFNRAT: FINANCIAL RATIOS 4 REM 6 REM 100 REM NAME -- FNRAT 110 REM FUNCTION -- COMPUTES 12 FINANCIAL RATIOS 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 21 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--------------------------------------------------------- 8 IF LEFT(S$,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%) 6 PRINT "ACID TEST RATIO: ";A 670 LET R1=D(10%)/D(1%) 680 PRINT "RECEIVABLE 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;"PERCE" 780 LET S1=D(12%)/D(10%) 790 PRINT "SELLING, GNERAL 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 GOTO 9999 900 PRINT "HA YOU ENTERED THE DATA STATEMENTS"; 902 DIM V$(15) 904 INPUT V$ 906 IF LEFT(V$,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 -- SUBROUTINEO GET NEXT VALUE 8010 IF LEFT(S$,1%)="T" THEN 8020 8012 REM -- READ NEXT DATA VALUE 8013 READ Z9 8014 PRINT Z9 8015 RETURN 8020 REM -- INPUT NEXT DATA VALUE 8021 INPUT Z9 8022 RETURN 9999 END