Q(uick)BASIC Function: SLN#

Quick View

SLN#

A function that returns the straight-line depreciation of an asset for a single period

Worth knowing

Useful and cross-version information about the programming environments of QBasic and QuickBasic.

Syntax
  • SLN# (cost#, salvage#, life#, status%)
Description/Parameter(s)
cost# The initial cost of the asset.
salvage# The value at the end of the useful life of the asset.
life# The useful life of the asset.
status% A variable that returns a value indicating calculation failure or success: 0 = success; 1 = failure.
  • The argument life# is the useful life of the asset (or the number of periods over which the asset is being depreciated).
  • The argument status% can be any variable that returns information about the success or failure of the calculation. The value of status% will be 0 if the calculation was successful, and 1 if it was not.

Important

  • To use SLN# in the QBX environment, use the FINANCER.QLB Quick library. To use SLN# outside the QBX environment, link your program with the appropriate FINANCxx.LIB file. Depending on the compiler options you chose when you installed BASIC, one or more of the following files will be available:
Filename Compiler options
FINANCER.LIB 80x87 or emulator math; DOS or OS/2 real mode
FINANCAR.LIB Alternate math; DOS or OS/2 real mode
FINANCEP.LIB 80x87 or emulator math; OS/2 protected mode
FINANCAP.LIB Alternate math; OS/2 protected mode
  • The FINANC.BI header file contains the necessary function declarations for SLN#.
  • For more information on using libraries, see "Creating and Using Quick Libraries" and "Using LINK and LIB" in the BASIC Programmer's Guide.
Example

This example uses the SLN# function to return the straight-line depreciation of an asset for a single period of its useful life.
Note: To run this example you must use a Quick library that includes the procedures contained in the date/time/format and financial function library files. The following include files must also be present.

'$INCLUDE: 'FINANC.BI' '$INCLUDE: 'FORMAT.BI' CONST YEARMONTHS = 12 CONST DOLLARFORMAT$ = "$#,###,##0.00" DEFDBL A-Z DIM Status AS INTEGER CLS PRINT "Assume you have a piece of expensive manufacturing equipment." INPUT "Enter the original cost of the equipment"; Cost PRINT PRINT "Salvage value is the value of the asset at the end of its useful life." INPUT "What is the salvage value of the equipment"; SalvageVal PRINT INPUT "What is the useful life of the equipment in months"; Life IF Life < YEARMONTHS THEN PRINT PRINT "If the life is less than a year, it is not an asset." INPUT "Reenter the useful life of the equipment in months"; Life END IF PRINT YearsInLife = Life / YEARMONTHS 'Round up to a whole year. IF YearsInLife <> INT(Life / YEARMONTHS) THEN YearsInLife = INT(YearsInLife + 1) END IF 'Calculate and format the results. PeriodDepreciation = SLN#(Cost, SalvageVal, YearsInLife, Status) 'Examine Status to determine success or failure of SLN#. IF Status THEN 'If unsuccessful, announce a problem. PRINT "There was an error in calculating depreciation." ELSE 'If successful calculate, format, and display the results. TotalDepreciation = Cost - SalvageVal MonthDepreciation = PeriodDepreciation / YEARMONTHS Cost$ = FormatD$(Cost, DOLLARFORMAT$) SalvageVal$ = FormatD$(SalvageVal, DOLLARFORMAT$) TotalDepreciation$ = FormatD$(TotalDepreciation, DOLLARFORMAT$) PeriodDepreciation$ = FormatD$(PeriodDepreciation, DOLLARFORMAT$) MonthDepreciation$ = FormatD$(MonthDepreciation, DOLLARFORMAT$) PRINT "If the original cost of your equipment is "; Cost$; "," PRINT "and the salvage value of that equipment is "; SalvageVal$; "," PRINT "the total depreciation at the end of its"; Life; "month lifetime " PRINT "is "; TotalDepreciation$; ". " PRINT PRINT "The straight-line depreciation is " PRINT PeriodDepreciation$; " per year, or" PRINT MonthDepreciation$; " per month." END IF