# Examples

The following examples are provided to illustrate the use of Accumath subroutines and functions in programs.

## Future Value

This example computes future value based on present value, interest rate and time. The example uses the implicit precision mode BASIC subroutines. The entry, compilation and running of the program is shown below.

```>ED BP FV
Top
001 * Calculate future value
002 PRINT 'Enter present value : ':; INPUT PV
003 PRINT 'Enter number of years : ':; INPUT T
004 PRINT 'Enter annual percentage rate : ':; INPUT I
005 * Calculate: FV = PV*(1+(I/100))^T
006 CALL XDIV(I,'100.000000000000',W)  ;* sets precision to 12
008 CALL XPWR(X,T,Y)                   ;* (1+(I/100))^T
009 CALL XMUL(PV,Y,Z)                  ;* PV*(1+(I/100))^T
010 CALL XPRC(Z,2,FV)                  ;* round to 2 places
011 PRINT 'Future value = ':FV
012 END
.FI
'FV' filed.

>BASIC BP FV
************

>RUN BP FV
Enter present value : ?10000
Enter number of years : ?5
Enter annual percentage rate : ?7.15102567111
Future value = 14124.78
```

## Loan Amortization

This example uses the string math functions and the explicit precision mode (the string math functions by default use the explicit precision mode, and the BASIC subroutine XPWRX is the explicit precision version). Although the explicit precision mode is used, the precision is never explicitly specified, thus using the default precision (standard default precision is 14). In this example, the pre-compiler XP-BASIC is used to compile the program, rather than BASIC. The pre-compiler translates the string math functions into the appropriate OCONV() functions, and then enters the normal BASIC compiler.

```>ED BP AMORT
Top
001 * Loan Amortization
002 INCLUDE XP XPA.DEFS
003 PRINT 'Enter principal: ':; INPUT PRINCIPAL
004 PRINT 'Enter months   : ':; INPUT PERIODS
005 PRINT 'Enter interest : ':; INPUT RATE
006 RATE = SDIV(RATE,1200)
008 PAYMENT = SMUL(PRINCIPAL,SDIV(RATE,SSUB(1,SDIV(1,X))))
009 PRINT 'Monthly payment = ':PAYMENT
010 END
.FI
'AMORT' filed.

>XP-BASIC BP AMORT
**********

>RUN BP AMORT
Enter principal: ?250000
Enter months   : ?360
Enter interest : ?9.5
Monthly payment = 2102.1355179475
```