Increments a multi-digit counter using non base-10 arithmetic.
Options
NREQUIRED = scalar |
Specifies the number of values required for the counter; default 2 |
---|---|
NFOUND = scalar |
Saves the number of counter values that could be formed |
DIRECTION = string token |
Specifies the direction of the sequence of increments to the counter (ascending , descending ); default asce |
Parameters
START = scalars |
Provides the starting values for the digits in the counter |
---|---|
END = scalars |
Can provide values to define the end of the sequence of counter values |
STEP = string token |
Specifies the amount by which to increment each digit of the counter |
BASE = scalars |
Specifies the base of the numbers used for each digit |
DIGITSEQUENCE = variates |
Saves the sequence of values generated for each digit |
Description
COUNTER
is useful if you want to increment a counter made up of several digits that recycle to limits that may be different from ten. For example, times in seconds, minutes and hours, or measurements in inches, feet and yards.
The parameters provide details of the digits in the counter, all in scalars. The BASE
parameter specifies the base of the numbers used for each digit (e.g. 60 for seconds and minutes, and 24 for hours). The START
parameter supplies the starting values of the digits, ranging from zero to BASE
minus one. The STEP
parameter specifies the size of the increment for each digit. The digits are updated from the right-hand side and, when one goes beyond its limit, the next one is incremented by an extra value of one for an ascending sequence, or minus one for a descending sequence. The DIGITSEQUENCE
saves the sequence of values formed for each digit of the counter, in variates.
The END
parameter can specify values to define the end of the sequence. If a value is specified for every digit, the sequence ends when the next set of digits would go beyond those supplied by END
: above END
for an ascending sequence, or below for a descending sequence. (See the DIRECTION
option.) Otherwise, the sequence ends when all the digits would go beyond their limits: BASE
minus one for an ascending sequence, or zero for a descending sequence.
The NREQUIRED
option specifies the number of values that are required for the counter. The default is 2, i.e. START
and one other. The NFOUND
option can save the number of values that have been formed. The DIRECTION
option controls whether the sequence of counter values should be regarded as ascending or descending, when checking for the end of the sequence. The default is ascending.
Options: NREQUIRED
, NFOUND
, DIRECTION
.
Parameters: START
, END
, STEP
, BASE
, DIGITSEQUENCE
.
See also
Commands for: Program control.
Example
" Example 1:5.4.4 " " Count in inches from 1 foot 11 inches to 2 yards " COUNTER [NREQUIRED=99] 1,0,11; END=2,0,0; STEP=0,0,1;\ BASE=1760,3,12; DIGITSEQUENCE=yard,foot,inch PRINT yard,foot,inch; DECIMALS=0