[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP COBOL
Reference Manual


Previous Contents Index

7.31 ORD

Description

The ORD function returns an integer value that is the ordinal position of the argument in the collating sequence for the program. The lowest ordinal position is 1.


arg

is an alphabetic or alphanumeric argument one character in length.

Rules

  1. The type of this function is integer.
  2. The value returned is the ordinal position of the specified character in the program collating sequence. (See the information on the ALPHABET clause in Chapter 4.)

Example


COMPUTE POSITION = FUNCTION ORD (SINGLE-CHAR).
If SINGLE-CHAR (an alphabetic or alphanumeric data item) has the value "A", the integer representing the ordinal position of "A" in the program collating sequence (66 for native) is the value returned and stored in POSITION (a numeric integer data item). (The numeric representation of a character is not the same as its ordinal position. Numeric representation starts at 0, whereas ordinals start at 1. Thus, the ordinal value of a character is always 1 greater than its numeric value.)

7.32 ORD-MAX

Description

The ORD-MAX function returns a value that is the ordinal number of the argument that contains the maximum value.


arg

is an alphabetic, alphanumeric, integer, or numeric argument.

Rules

  1. The type of this function is integer.
  2. 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.
  3. The returned value is the ordinal number that corresponds to the position of the argument having the greatest value in the argument series.
  4. The comparisons used to determine the greatest value are made according to the rules for simple conditions. (See Chapter 6.)
  5. If more than one argument has the same greatest value, the number returned corresponds to the position of the leftmost argument having that value.
  6. If there is only one argument, the value returned is 1.

Example


COMPUTE RSULT = FUNCTION ORD-MAX (A, B, C).
A, B, and C are alphanumeric data items one character in length. If the value "A" is in A, "B" is in B, and "C" is in C, the value returned and stored in RSULT (a numeric data item) is 3, because the third argument, C, has the greatest value.

7.33 ORD-MIN

Description

The ORD-MIN function returns a value that is the ordinal number of the argument that contains the minimum value.


arg

is an alphabetic, alphanumeric, integer, or numeric argument.

Rules

  1. The type of this function is integer.
  2. 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.
  3. The returned value is the ordinal number that corresponds to the position of the argument having the least value in the argument series.
  4. The comparisons used to determine the least value are made according to the rules for simple conditions. (See Chapter 6.)
  5. If more than one argument has the same least value, the number returned corresponds to the position of the leftmost argument having that value.
  6. If there is only one argument, the value returned is 1.

Example


COMPUTE RSULT = FUNCTION ORD-MIN (A, B, C).
A, B, and C are alphanumeric data items one character in length. If the value "A" is in A, "B" is in B, and "C" is in C, the value returned and stored in RSULT (a numeric data item) is 1, because the first argument, A, has the least value.

7.34 PRESENT-VALUE

Description

The PRESENT-VALUE function returns a value that approximates the present value of a series of future period-end amounts at a discount rate. The discount rate is specified by the first argument, and the future period-end amount(s) by one or more subsequent arguments.


rate

is a numeric argument greater than -1 representing the discount rate.

amt

is a numeric argument representing a future period-end amount.

Rules

  1. The type of this function is numeric.
  2. The period-end amounts specified must be for periods of equal duration, and the discount rate must be the rate per period (for example, if each period is a year, then use the annual discount rate).
  3. The returned value is an approximation of the summation of a series of calculations with each term in the following form:

    amt / (1 + rate) ** n

    There is one term for each occurrence of amt. The exponent, n, is incremented from 1 by 1 for each term in the series. If there are four arguments (rate, amt-1, amt-2, amt-3), the calculation is as follows:


    present-value = amt-1 / (1 + rate) ** 1 + amt-2 / (1 + rate) ** 2 + amt-3 / (1 + rate) ** 3

Example


COMPUTE RSULT = FUNCTION PRESENT-VALUE (DISCOUNT-RATE, 2000).
DISCOUNT-RATE and RSULT are numeric data items. If DISCOUNT-RATE has the value 0.08, the value returned and stored in RSULT is approximately 1851.85.

7.35 RANDOM

Description

The RANDOM function returns a numeric value that is a pseudo-random number from a rectangular distribution.


seed

is an optional integer argument with the value of 0 or a positive integer, used as the seed value to generate a sequence of pseudo-random numbers. The range of seed values that results in unique sequences of pseudo-random numbers is 0 through 2147483647.

Rules

  1. The type of this function is numeric.
  2. If the optional seed argument is not specified by the first reference to this function in the run unit, the seed value is 0.
  3. If any subsequent reference to this function in the run unit does not specify the seed argument, the value returned is the next number in the current sequence of pseudo-random numbers.
  4. If a subsequent reference to this function in the run unit does specify the seed argument, a new sequence of pseudo-random numbers is started.
  5. The returned value is greater than or equal to 0 and less than 1.
  6. For a given seed value, the sequence of pseudo-random numbers is always the same.

Example


COMPUTE RSULT-1 = FUNCTION RANDOM (12345).
   .
   .
   .
COMPUTE RSULT-2 = FUNCTION RANDOM.
   .
   .
   .
COMPUTE RSULT-3 = FUNCTION RANDOM (12345).
RSULT-1, RSULT-2, and RSULT-3 are numeric data items. Assuming the three sentences in the example are in the same run unit, the values returned and stored in RSULT-1 and RSULT-3 are the same. RSULT-2 has a different value consisting of the next number in the sequence that was started by the first reference to the function.


Previous Next Contents Index