bas7ex.hlp (Topic list)
IRR# and NPV# Programming Example
                       Example                 Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
'This example uses the IRR# function to determine the internal rate of return
'for a series of periodic cash flows represented in an array of values. It
'then uses the NPV# function to determine the net present value for the
'same periodic cash flows used to determine the internal rate of return.
 
'Note: To run this example you must use a Quick library that includes the
'procedures contained in one of the financial function library files.
'The following include file must also be present.
 
'$INCLUDE: 'FINANC.BI'
 
OPTION BASE 1
CONST DOLLARFORMAT$ = "$#,###.##"
CONST PERCENTFORMAT$ = "##.##"
DEFDBL A-Z
DIM Status  AS INTEGER, NumFlows  AS INTEGER
NumFlows% = 6
DIM Values(NumFlows%) AS DOUBLE
Guess = .1
 
'Read cash flows into Values# array.
FOR I = 1 TO NumFlows%
    READ Values#(I)
NEXT I
 
'Calculate the internal rate of return.
ReturnRate = IRR#(Values#(), NumFlows%, Guess, Status%)
 
'Examine Status% to determine success or failure of IRR.
IF Status% THEN
 
    'If unsuccessful, announce a problem.
    PRINT "There was an error in calculating the internal rate of return."
 
ELSE
 
    'Display the internal rate of return.
    PRINT "You're starting a printing business. You estimate that it will"
    PRINT "cost you $70,000.00 in start-up costs. Your net annual income "
    PRINT "for the next five years is expected to be $12,000, $15,000, "
    PRINT "$18,000, $21,000, and $26000, respectively."
    PRINT
    PRINT "The internal rate of return for these cash flow figures is";
    PRINT USING PERCENTFORMAT$; ReturnRate * 100;
    PRINT "%."
    PRINT
 
    'Calculate the net present value.
    NetPresentValue = NPV#(ReturnRate, Values#(), NumFlows%, Status%)
 
    IF Status% THEN
        PRINT "There was an error in calculating the net present value."
    ELSE
        PRINT "The net present value of the cash flows used to calculate"
        PRINT "the internal rate of return is effectively ";
        PRINT USING DOLLARFORMAT$; NetPresentValue;
        PRINT "."
    END IF
END IF
 
'Estimated cost of starting up a printing business (Negative cash flow).
DATA -70000
 
'Net income each year for 5 successive years (Positive cash flow).
DATA 12000,15000,18000,21000,26000