8990  REM  ****  HP BASIC PROGRAM LIBRARY  ***************************
8991  REM
8992  REM        INSTMT:  INCOME STATEMENT
8993  REM
8994  REM        36089  REV B  --  2/73
8995  REM
8996  REM  ****  CONTRIBUTED PROGRAM  ********************************
9000  REM *****INSTMT*****BUSINESS PROGRAM
9003  REM INSTMT**********VERSION #1 (7/31/69)*****INCOME STATEMENT
9004  REM****REVISED VERSION***LAD***(8/7/72)
9006  REM
9009  PRINT "*  INCOME STATEMENT  *"
9012  PRINT 
9015  PRINT "THIS PROGRAM WILL PRINT A SIMPLE INCOME STATEMENT, AND WILL ALLOW A"
9018  PRINT "SENSITIVITY ANALYSIS ON VARIOUS INPUT."
9021  PRINT 
9024  PRINT 
9027  DEF FNR()=INT((*1000+5)/10)/100
9030  DIM M[8,6],P[5,4]
9033  DIM A$[15],B$[20],C$[3],D$[3]
9035  LET S1=S2=0
9036  LET T7=T8=0
9039  FOR I=1 TO 8
9042  FOR J=1 TO 5
9045  LET M[I,J]=0
9048  NEXT J
9051  NEXT I
9054  FOR I=1 TO 4
9057  READ M[I,1]
9060  NEXT I
9063  READ M[6,1]
9069  PRINT "DO YOU WISH TO USE AVERAGE OR INDIVIDUAL GROWTH RATES? (ENTER 'AVG'"
9072  PRINT "OR 'IND')";
9075  INPUT A$
9078  PRINT 
9081  PRINT "PLEASE ENTER THE FOLLOWING VALUES IN PERCENT:"
9084  IF A$[1,3]="AVG" THEN 9147
9087  FOR I=1 TO 4
9090  READ B$
9093  LET X=70
9096  LET Y=71
9099  FOR J=1 TO 4
9102  LET Y=Y+1
9105  LET X=X+1
9108  IF S2>0 THEN 9117
9111  PRINT "PERCENT GROWTH IN ";B$
9114  LET S2=1
9117  PRINT " FOR YEARS ";X;" - ";Y;
9120  INPUT P[I,J]
9123  IF P[I,J]>.99999 THEN 9132
9126  PRINT "IN PERCENT PLEASE.  DO NOT INPUT A VALUE LESS THAN 1"
9129  GOTO 9120
9132  LET P[I,J]=(P[I,J]/100)+1
9135  NEXT J
9138  LET S2=0
9141  NEXT I
9144  GOTO 9195
9147  FOR I=1 TO 4
9150  READ B$
9153  PRINT "PERCENT GROWTH IN ";B$;
9156  INPUT P[I,1]
9159  IF P[I,1]>.99999 THEN 9168
9162  PRINT "IN PERCENT PLEASE.  DO NOT INPUT A VALUE LESS THAN 1"
9165  GOTO 9156
9168  LET P[I,1]=(P[I,1]/100)+1
9171  FOR J=2 TO 4
9174  LET P[I,J]=P[I,1]
9177  NEXT J
9180  NEXT I
9183  GOTO 9195
9186  REM     EXTEND SALES, COST OF GOODS SOLD, ADVERTISING
9189  REM     AND ADMINISTRATIVE EXPENSE
9192  RESTORE 9570
9195  FOR I=1 TO 4
9198  FOR J=1 TO 4
9201  LET M[I,J+1]=M[I,J]*P[I,J]
9204  NEXT J
9207  NEXT I
9210  REM     CALCULATE OPERATING INCOME
9213  FOR I=1 TO 5
9216  LET M[5,I]=M[1,I]-M[2,I]-M[3,I]-M[4,I]
9219  NEXT I
9222  REM CALCULATE TAXES
9225  FOR J=1 TO 5
9228  IF M[5,J]>0 THEN 9246
9231  LET T7=1
9234  LET M[6,J+1]=(-1*M[5,J])+M[6,J]
9237  LET M[7,J]=0
9240  LET M[8,J]=M[5,J]
9243  GOTO 9285
9246  IF M[6,J]>M[5,J] THEN 9252
9249  GOTO 9270
9252  LET M[6,J+1]=M[6,J]-M[5,J]
9255  LET M[7,J]=0
9258  LET M[8,J]=M[5,J]
9261  GOTO 9285
9264  REM    CALCULATE ACTUAL TAX, CONSIDER POSSIBILITY
9267  REM    OF HAVING TAX LOSS CARRY OVER
9270  IF (M[5,J]-M[6,J])-25>0 THEN 9279
9273  LET M[7,J]=(M[5,J]-M[6,J])*.22
9276  GOTO 9282
9279  LET M[7,J]=(M[5,J]-M[6,J]-25)*.48+5.5
9282  LET M[8,J]=M[5,J]-M[7,J]
9285  NEXT J
9288  PRINT 
9291  PRINT "**********************************************************************"
9294  PRINT 
9295  PRINT 
9297  PRINT TAB(24);"INCOME STATEMENT"
9300  PRINT TAB(25);"$ IN THOUSANDS"
9303  PRINT TAB(24);"----------------"
9306  GOSUB 9312
9309  GOTO 9333
9312  PRINT 
9318  PRINT "YEARS";TAB(14);"71";TAB(26);"72";TAB(38);
9321  PRINT "73";TAB(50);"74";TAB(62);"75";
9324  PRINT 
9327  PRINT 
9330  RETURN 
9333  FOR I=1 TO 8
9336  READ A$
9342  PRINT A$;
9345  LET X=15
9348  FOR J=1 TO 5
9351  LET C9=X
9354  LET X9=M[I,J]
9357  GOSUB 9582
9360  LET X=X+12
9363  NEXT J
9366  PRINT 
9369  NEXT I
9372  PRINT 
9373  PRINT 
9375  PRINT "                         ----------"
9378  PRINT 
9381  PRINT "PLEASE ENTER ONE OF THE FOLLOWING FOUR VALUES: 1) 'GROW' TO HAVE"
9384  PRINT "THE GROWTH PERCENTAGES LISTED; 2) 'PERCENT' TO HAVE THE PERCENTAGE"
9387  PRINT "RELATIONSHIPS OF THE ITEMS TO SALES LISTED; 3) 'YES' TO BE GIVEN"
9390  PRINT "THE OPTION TO CHANGE THE ORIGINAL INPUT PERCENTAGES AND RETRY; OR"
9393  PRINT "4) 'NO' TO TERMINATE";
9396  INPUT A$
9399  PRINT 
9402  IF A$[1,2]="NO" THEN 9741
9405  IF A$[1,3]="YES" THEN 9432
9408  IF A$[1,4]="GROW" THEN 9420
9411  IF A$[1,7]="PERCENT" THEN 9426
9414  PRINT "COMMAND MUST BE GROW, PERCENT, YES, OR NO; REINPUT";
9417  GOTO 9396
9420  GOSUB 9615
9423  GOTO 9375
9426  GOSUB 9678
9429  GOTO 9375
9432  RESTORE 
9435  LET S1=1
9438  PRINT "PLEASE ENTER THE FOLLOWING FOUR PARAMETERS A LINE AT A TIME."
9441  PRINT "     1)THE FACTOR YOU WISH TO ALTER: 'SAL' FOR SALES,'ADV' FOR ADVERTIS-"
9442  PRINT "       ING, 'CGS', OR 'ADM'."
9444  PRINT "     2)ON THE NEXT LINE, THE YEAR YOU WANT THE NEW PERCENTAGE"
9446  PRINT "       TO OCCUR:  72,73,74,75.   ***NOTE:  THE INITIAL PERCENTAGE"
9447  PRINT "       WILL APPLY TO ALL OTHER YEARS UNLESS SPECIFICALLY CHANGED"
9448  PRINT "     3)THE NEW PERCENTAGE."
9450  PRINT "     4)ON THE FOURTH LINE, 'YES' OR 'NO', INDICATING WHETHER YOU"
9452  PRINT "       WISH TO CHANGE ANY OTHER FACTOR NOW."
9453  INPUT C$
9454  INPUT X
9455  INPUT C9
9456  INPUT D$
9465  IF C$ <> "SAL" THEN 9474
9468  LET I=1
9471  GOTO 9510
9474  IF C$ <> "CGS" THEN 9483
9477  LET I=2
9480  GOTO 9510
9483  IF C$ <> "ADV" THEN 9492
9486  LET I=3
9489  GOTO 9510
9492  IF C$ <> "ADM" THEN 9501
9495  LET I=4
9498  GOTO 9510
9501  PRINT "FIRST INPUT NOT RECOGNIZED; PLEASE TRY 'SALES','ADV','CGS' OR 'ADM'"
9504  INPUT C$
9507  GOTO 9465
9510  LET J=X-71
9513  IF J <> 0 AND J<5 THEN 9525
9516  PRINT "YEAR MUST BE ONE OF THE FOLLOWING - 72,73,74,75; RE-INPUT YR"
9519  INPUT X
9522  GOTO 9510
9525  LET P[I,J]=(C9/100)+1
9528  IF D$="NO" THEN 9192
9529  PRINT "NEXT CHANGE"
9530  GOTO 9453
9534  REM     SALES
9537  DATA 1000
9540  REM    COST OF GOODS SOLD
9543  DATA 500
9546  REM    ADVERTISING
9549  DATA 150
9552  REM    ADMINISTRATIVE EXPENSE
9555  DATA 100
9558  REM      TAX LOSS CARRY FORWARD
9561  DATA 50
9564  DATA "SALES             ","COST OF GOODS SOLD"
9567  DATA "ADVERTISING       ","ADMIN & GENERAL EX"
9570  DATA "   SALES","  -CG SOLD"
9573  DATA "  - ADV","  - ADM&GEN"
9576  DATA "=OPER INC","*TAX L.C.F."
9579  DATA "  - TAXES","=NET INCOME"
9582  LET T9=C9-2
9585  IF ABS(X9)<.1 THEN 9600
9588  LET T9=T9-INT((LOG(ABS(X9))+5.E-07)/LOG(10))
9591  IF T9>60 THEN 9597
9594  IF T9 >= T8+12 THEN 9600
9597  PRINT '13;
9600  PRINT TAB(T9);FNR(X9);
9603  LET T8=T9
9606  RETURN 
9609  REM     SUBROUTINE TO PRINT OUT THE YEARLY GROWTH RATES - DATA
9612  REM ARE IN TABLE P(4,4)
9615  PRINT 
9618  PRINT "                        -----------"
9621  PRINT 
9624  PRINT TAB(19);"GROWTH RATES - YEAR TO YEAR"
9627  GOSUB 9312
9630  RESTORE 9633
9633  DATA "SALES","CGS","DV","ADM EXP"
9636  FOR I=1 TO 4
9639  READ A$
9642  LET X=18
9645  PRINT A$;
9648  FOR J=1 TO 4
9651  PRINT TAB(X);FNR((P[I,J]-1)*100);
9654  LET X=X+12
9657  NEXT J
9660  PRINT 
9663  NEXT I
9666  PRINT 
9669  RETURN 
9672  REM     SUBROUTINE TO PRINT OUT THE PERCENTAGE RELATIONSHIP OF
9675  REM     ITEMS TO SALES.
9678  PRINT 
9681  PRINT "                        -----------"
9684  PRINT 
9687  PRINT TAB(24);"PERCENT OF SALES"
9690  GOSUB 9312
9693  RESTORE 9570
9696  FOR I=1 TO 8
9699  READ A$
9702  IF I=6 THEN 9732
9705  PRINT A$;
9708  LET X=15
9711  FOR J=1 TO 5
9714  LET C9=X
9717  LET X9=(M[I,J]/M[1,J])*100
9720  GOSUB 9582
9723  LET X=X+12
9726  NEXT J
9729  PRINT 
9732  NEXT I
9735  PRINT 
9738  RETURN 
9741  PRINT 
9744  PRINT "*********************************************************************"
9747  END 
