Compaq COBOL
Reference Manual
7.17 INTEGER-OF-DAY
Description
The INTEGER-OF-DAY function converts a date in the Gregorian calendar 
from year-day (YYYYDDD) form (sometimes called "Julian") to an integer 
date form representing the number of days after December 31, 1600.
num
is an integer argument of the form YYYYDDD representing a date 
subsequent to December 31, 1600.
Rules
  - The type of this function is integer.
  
 - The value of the argument is obtained from the calculation (YYYY * 
  1000) + DDD. YYYY represents the year in the Gregorian calendar, and 
  must be an integer in the range 1601 through 9999. DDD represents a day 
  and is an integer in the range 1 through 366; the value of DDD must be 
  valid for the specified year.
  
 - The returned value is an integer that is the number of days the 
  specified date succeeds December 31, 1600, in the Gregorian calendar.
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION INTEGER-OF-DAY (1601365). 
 
 | 
The value returned and stored in RSULT (a numeric integer data item) is 
365, which is the number of days succeeding December 31, 1600, and 
which represents December 31, 1601.
7.18 INTEGER-PART
Description
The INTEGER-PART function returns an integer that is the integer 
portion of the argument.
num
is a numeric argument.
Rules
  - The type of this function is integer.
  
 - If the value of the argument is 0, the returned value is 0.
  
 - If the value of the argument is positive, the returned value is the 
  greatest integer less than or equal to the value of the argument.
  
 - If the value of the argument is negative, the returned value is the 
  least integer greater than or equal to the value of the argument.
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION INTEGER-PART (NUM). 
 
 | 
NUM is a numeric data item, and RSULT is a numeric integer data item. 
If NUM has the value 0, the value returned is 0. If NUM has the value 
+1.5, the value returned is +1. If NUM has the value -1.5, the value 
returned is -1 (the least integer greater than or equal to the value of 
-1.5).
7.19 LENGTH
Description
The LENGTH function returns an integer equal to the length of the 
argument in character positions.
arg
is a nonnumeric literal or a data item of any class or category.
Rules
  - The type of this function is integer.
  
 - The value returned is an integer equal to the length of the 
  argument in character positions. However, if the argument is a group 
  data item containing a variable occurrence data item, the returned 
  value is an integer determined by evaluation of the data item specified 
  in the DEPENDING phrase of the OCCURS clause for that variable 
  occurrence data item. This evaluation is accomplished according to the 
  rules in the OCCURS clause dealing with the data item as a sending data 
  item.
  
 - The returned value includes implicit FILLER characters, if any.
  
 - For items that are not USAGE DISPLAY, the returned value represents 
  the allocated physical storage in bytes as described in Tables 
  5_12 and 5-13.
 
Examples
  - 
  
    
       
      
COMPUTE RSULT = FUNCTION LENGTH ("J. R. Donaldson"). 
 | 
The value 15 is returned and stored in RSULT (a numeric integer data 
item).
   - 
  
    
       
      
 
01  RECORD-SIZE      PIC 9(9). 
01  RECORD1. 
    05   REC-TYPE    PIC 9(4)  VALUE 23. 
    05   REC-CNT     PIC 9(4)  VALUE 50. 
    05   A-REC       PIC X(30) OCCURS 1 TO 100 TIMES 
                               DEPENDING ON REC-CNT. 
   .
   .
   .
COMPUTE RECORD-SIZE = FUNCTION LENGTH (RECORD1). 
CALL 'SUBR' USING RECORD1, RECORD-SIZE. 
 | 
RECORD-SIZE is a numeric integer data item. The value returned by the 
function and stored in RECORD-SIZE is 1508. (The computation is 4 + 4 + 
(50 * 30) = 1508.)
 
7.20 LOG
Description
The LOG function returns a numeric value that approximates the 
logarithm to the base e (natural log) of the argument.
num
is a positive numeric argument.
Rules
  - The type of this function is numeric.
  
 - The returned value is an approximation of the logarithm to the base 
  e of the argument.
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION LOG (NUM). 
 
 | 
NUM and RSULT are numeric data items; the value of NUM must be greater 
than 0. The value returned and stored in RSULT is an approximation of 
the logarithm to the base e of NUM.
7.21 LOG10
Description
The LOG10 function returns a numeric value that approximates the 
logarithm to the base 10 of the argument.
num
is a positive numeric argument.
Rules
  - The type of this function is numeric.
  
 - The returned value is an approximation of the logarithm to the base 
  10 of the argument.
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION LOG10 (NUM). 
 
 | 
NUM and RSULT are numeric data items; the value of NUM must be greater 
than 0. The value returned and stored in RSULT is an approximation of 
the logarithm to the base 10 of NUM.
7.22 LOWER-CASE
Description
The LOWER-CASE function returns a character string that is the same 
length as the argument with each uppercase letter in the argument 
replaced by the corresponding lowercase letter.
string
is an alphabetic or alphanumeric argument at least one character in 
length.
Rules
  - The type of this function is alphanumeric.
  
 - The returned value is the same character string as the argument, 
  except that each uppercase letter in the argument is replaced by the 
  corresponding lowercase letter.
 
Example
  
    
       
      
MOVE FUNCTION LOWER-CASE (STR) TO LC-STR. 
 
 | 
If STR (an alphanumeric data item six characters in length) contains 
the value "Autumn" the value returned and stored in LC-STR (also an 
alphanumeric data item six characters in length) is "autumn"; if STR 
contains "fall98" the value returned is unchanged ("fall98").
7.23 MAX
Description
The MAX function returns the contents of the argument that contains the 
maximum value.
argument
is an alphabetic, alphanumeric, integer, or numeric argument.
Rules
  - The arguments must be all alphabetic, all alphanumeric, all 
  integer, or all numeric, except that integer and numeric arguments can 
  be mixed and alphabetic and alphanumeric arguments can be mixed.
  
 - The type of the function depends on the arguments, as follows:
  
    | Arguments  | 
    Function Type  | 
  
  
    | 
      Alphabetic and/or alphanumeric
     | 
    
      Alphanumeric
     | 
  
  
    | 
      Integer (all arguments)
     | 
    
      Integer
     | 
  
  
    | 
      Numeric (some arguments might be integer)
     | 
    
      Numeric
     | 
  
   - The returned value consists of the contents of the argument having 
  the greatest value, as determined by comparisons made according to the 
  rules for simple conditions. (See Chapter 6.)
  
 -  If more than one argument has the same value, and that value is 
  the maximum, the returned value consists of the contents of the 
  leftmost of these arguments.
  
 - If there is only one argument, the returned value consists of the 
  contents of that argument.
  
 -  If the type of the function is alphanumeric, the size of the 
  returned value is the same as the size of the argument selected as the 
  maximum.
 
Examples
  - 
  
    
       
      
MOVE FUNCTION MAX ("A", "B", "C") TO MAX-LETTER-OUT. 
MOVE FUNCTION MAX (1, 2, 3) TO MAX-NUMBER-OUT. 
 | 
MAX-LETTER-OUT is alphabetic or alphanumeric, and receives the value 
"C"; MAX-NUMBER-OUT is integer and receives the value 3.
   - 
  
    
       
      
COMPUTE ITEMC = (ITEMA + FUNCTION MAX (ITEMB, 10)). 
 
 | 
If ITEM A and ITEMB both contain the value 1, this statement results in 
ITEMC having the value 11.
  
    
       
      
IF FUNCTION MAX (A, B, C) > 100 ...
 
 | 
This is equivalent to the following more complex code:
  
    
       
      
IF A >= B 
   IF A >= C 
      MOVE A TO TMP 
   ELSE 
      MOVE C TO TMP 
ELSE 
   IF B >= C 
      MOVE B TO TMP 
   ELSE 
      MOVE C TO TMP. 
IF TMP > 100 ...
 | 
   -  The following example shows generic subscripting with reference 
  modification:
  
    
       
      
05  TABLE1 PIC X(7) OCCURS 3 TIMES. 
   .
   .
   .
MOVE "XAAAAAQ" TO TABLE1(1). 
MOVE "XBBBBBQ" TO TABLE1(2). 
MOVE "XCCCCCQ" TO TABLE1(3). 
MOVE FUNCTION MAX(TABLE1(ALL)(2:5)) TO RSULT. 
 
 | 
    
The value "CCCCC" is returned and stored in RSULT, an alphanumeric 
    data item. The reference modifier, (2:5), applies to each element 
    implicitly specified by the ALL subscript. Thus,
  
    
       
      
FUNCTION MAX(TABLE1(ALL)(2:5))      
 
 | 
is equivalent to
  
    
       
      
FUNCTION MAX(TABLE1(1)(2:5), 
             TABLE1(2)(2:5), 
             TABLE1(3)(2:5)) 
 | 
 
7.24 MEAN
Description
The MEAN function returns a numeric value that is the arithmetic mean 
(average) of its arguments.
arg
is a numeric argument.
Rules
  - The type of this function is numeric.
  
 - The return value is the arithmetic mean of the arguments in the 
  argument list; that is, it is the sum of the arguments divided by the 
  number of arguments.
 
Examples
  - 
  
    
       
      
COMPUTE AVERAGE-VALUE = FUNCTION MEAN (9, 2, 6, 7, 1). 
 
 | 
The value returned and stored in AVERAGE-VALUE (a numeric data item) is 
5 (the sum of the arguments divided by the number of arguments).
   - 
  
    
       
      
COMPUTE MEAN-ANSWER = FUNCTION MEAN(A, B, C). 
 
 | 
MEAN-ANSWER, A, B, and C are numeric data items. This code is 
equivalent to
  
    
       
      
COMPUTE MEAN-ANSWER = (A + B + C ) / 3. 
 
 | 
 
7.25 MEDIAN
Description
The MEDIAN function returns the median value of a list of numbers, 
represented by the arguments. This value is such that at least half of 
the values are greater than or equal to the returned value, and at 
least half are less than or equal.
num
is a numeric argument.
Rules
  - The type of this function is numeric.
  
 - If the number of arguments is odd, the returned value is the middle 
  occurrence in the sorted list.
  
 - If the number of arguments is even, the returned value is the 
  arithmetic mean of the values referenced by the two middle occurrences 
  in the sorted list.
  
 - The comparisons used to arrange the argument values in sorted order 
  are made according to the rules for simple conditions. (See 
  Chapter 6.)
 
Examples
  - 
  
    
       
      
COMPUTE RSULT = FUNCTION MEDIAN (1, 1, 9, 2, 1). 
 
 | 
The value returned and stored in RSULT (a numeric data item) is 1.
   - 
  
    
       
      
COMPUTE RSULT = FUNCTION MEDIAN (1, 1, 9, 2). 
 
 | 
The value returned and stored in RSULT is 1.5.
 
7.26 MIDRANGE
Description
The MIDRANGE (middle range) function returns a numeric value that is 
the arithmetic mean (average) of the values of the minimum argument and 
the maximum argument.
num
is a numeric argument.
Rules
  - The type of this function is numeric.
  
 - The returned value is the arithmetic mean of the greatest argument 
  value and the least argument value. The comparisons used to determine 
  the greatest and least values are made according to the rules for 
  simple conditions. (See Chapter 6.)
  
 - The values of the arguments that are neither the greatest nor the 
  least in value do not affect the value returned.
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION MIDRANGE (1, 2, 50, 4, 3). 
 
 | 
The value returned and stored in RSULT (a numeric data item) is 25.5, 
which is the arithmetic mean of the greatest and least arguments; that 
is, the sum of 50 and 1 divided by 2.
7.27 MIN
Description
The MIN function returns the content of the argument that contains the 
minimum value.
argument
is an alphabetic, alphanumeric, integer, or numeric argument.
Rules
  - The arguments must be all alphabetic, all alphanumeric, all 
  integer, or all numeric, except that integer and numeric arguments can 
  be mixed and alphabetic and alphanumeric arguments can be mixed.
  
 - The type of the function depends on the arguments, as follows:
  
    | Arguments  | 
    Function Type  | 
  
  
    | 
      Alphabetic and/or alphanumeric
     | 
    
      Alphanumeric
     | 
  
  
    | 
      Integer (all arguments)
     | 
    
      Integer
     | 
  
  
    | 
      Numeric (some arguments might be integer)
     | 
    
      Numeric
     | 
  
   - The returned value consists of the contents of the argument having 
  the least value, as determined by comparisons made according to the 
  rules for simple conditions. (See Chapter 6.)
  
 -  If more than one argument has the same value, and that value is 
  the minimum, the returned value consists of the contents of the 
  leftmost of these arguments.
  
 - If there is only one argument, the returned value consists of the 
  contents of that argument.
  
 -  If the type of the function is alphanumeric, the size of the 
  returned value is the same as the size of the argument selected as the 
  minimum.
 
Example
  
    
       
      
COMPUTE ITEMC = (ITEMA + FUNCTION MIN (ITEMB, 10)). 
 
 | 
If ITEMA and ITEMB both contain the value 1, this statement results in 
ITEMC having the value 2.
7.28 MOD
Description
The MOD function returns the value of argument-1 modulo argument-2.
argument-1
is an integer argument.
argument-2
is an integer argument whose value cannot be 0.
Rules
  - The type of this function is integer.
  
 - The returned value is an integer value and is defined as the 
  following:
  
    
       
      
argument-1  --  (argument-2 * FUNCTION INTEGER (argument-1 / argument-2)) 
     | 
  
(The INTEGER function returns the greatest integer value that is less 
than or equal to the argument. See Section 7.15 for more information.)
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION MOD (ARGUMENT-1, ARGUMENT-2). 
 
 | 
ARGUMENT-1 and ARGUMENT-2 are numeric integer data items. Following are 
the expected results for some values of ARGUMENT-1 and ARGUMENT-2:
  
    | ARGUMENT-1  | 
    ARGUMENT-2  | 
    RETURN  | 
  
  
    | 
       11
     | 
    
       5
     | 
    
       1
     | 
  
  
    | 
      -11
     | 
    
       5
     | 
    
       4
     | 
  
  
    | 
       11
     | 
    
      -5
     | 
    
      -4
     | 
  
  
    | 
      -11
     | 
    
      -5
     | 
    
      -1
     | 
  
7.29 NUMVAL
Description
The NUMVAL function returns the numeric value represented by the 
character string specified by the argument. Leading and trailing spaces 
are ignored.
arg
is an alphanumeric argument whose content has one of the following two 
formats:
where space is a string of 0 or more spaces, and digit is a string of 1 
to 18 digits.
Rules
  - The type of this function is numeric.
  
 - The total number of digits in the argument must not exceed 18.
  
 - If the DECIMAL-POINT IS COMMA clause is specified in the 
  SPECIAL-NAMES paragraph, a comma must be used in the argument rather 
  than a decimal point.
  
 - The returned value is the numeric value represented by the argument.
  
 - The number of digits returned is 18.
 
Examples
  - 
  
    
       
      
COMPUTE RSULT = FUNCTION NUMVAL ("4540"). 
 | 
The value returned and stored in RSULT (a numeric data item) is 4540.
   - 
  
    
       
      
MOVE "-123.49" TO OLD-ID. 
COMPUTE NEW-ID = 2 + FUNCTION NUMVAL (OLD-ID). 
 
 | 
OLD-ID is an alphanumeric data item, and NEW-ID is a numeric data item. 
The value returned by the function is the numeric value -123.49, which 
is added to 2, giving the sum -121.49, which is stored in NEW-ID.
 
7.30 NUMVAL-C
Description
The NUMVAL-C function returns the numeric value represented by the 
character string specified by the first argument. Any currency sign 
found in the character string and any commas preceding the decimal 
point are ignored in determining the result.
arg-1
is an alphanumeric argument whose content has one of the following two 
formats:
where space is a string of 0 or more spaces, cs is a 
string of 1 or more characters specified by arg-2, and 
digit is a string of 1 or more digits.
arg-2
 is an alphanumeric argument.
Rules
  - The type of this function is numeric.
  
 - The total number of digits in the first argument must not exceed 18.
  
 - If the DECIMAL-POINT IS COMMA clause is specified in the 
  SPECIAL-NAMES paragraph, the functions of the comma and decimal point 
  in the first argument are reversed.
  
 - If the optional second argument is not specified, the character 
  used for cs is the currency symbol specified for the program.
  
 - The returned value is the numeric value represented by the first 
  argument.
  
 - The number of digits returned is 18.
 
Example
  
    
       
      
COMPUTE RSULT = FUNCTION NUMVAL-C ("#1,000.00", "#"). 
 | 
The numeric value returned and stored in RSULT (a numeric data item) is 
1000.