前ページへ 次ページへ

第11章: 手続き部 - 組み込み関数

組み込み関数を使用すると、参照したデータ項目の値が、実行用プログラムを実行中に自動的に算出される。

組み込み関数を使用した場合、浮動小数点モジュールが必要となる。ランタイムシステム支援モジュールの詳細については、構築とリンクに関するCOBOLシステムのマニュアルを参照。

11.1 関数名

組み込み関数機能単位において、関数とは一時的なデータ項目である。その値は、文を実行している間に関数が参照された時点で決定される。 関数名はCOBOLの語であり、原始プログラム中で使用できるCOBOLの語のリスト中に含まれている。 (この章で後述する関数の定義 を参照。)

11.2 関数定義と戻り値

関数の型に応じて、下記のことが示される。

11.3 関数一意名

関数一意名は、COBOL原始プログラムの手続き部の中で使用する、関数の名前である。 ( COBOLの概念 の章の 関数一意名の節を参照。)

11.4 関数からの戻り値

関数からの戻り値(関数値)は、データ値とみなされる。関数を使用すると、実行時にこのデータ値が決定される。そのためには、プログラムから関数に、基となるデータ値をパラメータとして引き渡す必要がある。このパラメータを 引数という。関数によっては、引数の取る値の範囲などに制約があるものがある。関数の実行時に引数の値がその関数の制約から外れる場合、その関数からの戻り値は保証されない。

11.5 引数

 引数は、関数値を求めるために使用する値である。引数は、関数一意名中に指定する。指定する引数の型には、一意名と算術式と定数がある。各関数の定義の説明で、必要な引数の数を具体的に示してある。関数によって、引数は必要ないもの、1つだけ必要とするもの、複数個必要とするものがある。また、中には、指定できる引数の数が変えられる関数もある。 関数一意名中に引数を指定する順序に基づいて、それぞれの引数が解釈され、関数値が決定される。 指定する引数が、特定の字類またはその部分集合に属することが要求される場合がある。引数の型を下に示す。

  1. 数 字: 算術式を指定する。演算符号を含む算術式の値が、関数値を求めるために使用される。

  2. 英 字: 字類が英字である基本データ項目、または英字だけを含む文字定数を指定する。引数の大きさが、関数値の決定に使用されることもある。

  3. 英数字: 字類が英字か英数字である基本データ項目、または文字定数を指定する。引数の大きさが、関数値の決定に使用されることもある。

  4. 各国語型。字類が各国語型であるデータ項目、または各国語型文字を指定する。引数の大きさが、関数値の決定に使用されることもある。

  5. 整 数: 結果が必ず整数になる算術式を指定する。演算符号を含む算術式の値が、関数値を求めるために使用される。

意味のある関数値を求めるために、引数に指定できる値に制約が設けられることがある。関数の実行時に引数の値がその関数の制約から外れる場合、その関数からの戻り値は保証されない。

関数定義において引数を任意の回数繰り返し指定することが認められている場合、表を使用することができる。この場合、使用する表を識別するデータ名と、必要に応じて修飾語を指定し、その直後に添字を続ける。添字の1つまたはいくつかに語ALLを指定できる。

添字にALLを指定すると、その添字の位置に対応する表要素をすべて指定したのと同様の効果が得られる。この暗黙の指定は、表の要素を左から右に順に指定することを意味する。つまり、指定の対象となる最初(左端)の表要素は、添字に指定した語ALLのそれぞれを、1で置き換えた一意名によって表わされるものとなる。指定の対象となる次の表要素は、右端のALLに対応する添字の値を1繰り上げた一意名によって表わされるものとなる。

それ以降、暗黙の指定の対象となる表要素は、右端のALLに対応する添字の値を順々に1繰り上げていった一意名によって表わされるものとなる。そして、そのALLに対応する添字の値がその最大値に達したところで、その添字の繰り上げ処理は終わりとなる。ALLを指定した添字が複数ある場合は、次に、ALLを指定した右端の添字のすぐ左のALLを指定した添字が1繰り上げられ、ALLを指定した右端の添字の値は1に設定し直される。右端の添字の値を順々に1繰り上げていくことが、再度繰り返される。そして、右端の添字の値が最大値に達するたびに、その左側の添字の値が1繰り上げられる。左側の添字の値が最大値に達したところで、その添字の繰り上げ処理は終わりとなる。その左側にもALLを指定した添字がまだあれば、同様のプロセスが繰り返され、ALLを指定した左端の添字の値が最大値に達するまで、続けられる。

この処理の対象となる添字にOCCURS DEPENDING ON句が指定してある場合は、該当する添字の値の範囲は、OCCURS DEPENDING ON句の右辺の項目に基づいて決められる。ALLを指定した添字が評価された結果、少なくとも引数が1つ存在しなければならない。引数がないと、戻り値は保証されない。

例:
 01 Test-Fields.
     10 OT-Elem                  PIC 9(02).
     10 Arr.
         15 Ind occurs 5 times        PIC 9(02).
     compute OT-Elem = function sum (IND(ALL)).

下記のコーディングと同じ意味になる。

     compute OT-Elem = function sum (IND(1), IND(2), IND(3),
                                            IND(4), IND(5)).

ALL を指定した添字は、以下の例のように、多くの要素を持つ表でも使用できる。

 01 Test-Group.
     03 OT-Elem               pic 9(15) binary.
     03 table-length          pic s9(9) binary.
     03 array.
         05 Ind pic 9(2) occurs 1 to 200 times depending on
                              table length
      ...
     move 100 to table-length.
     compute OT-Elem = function sum (Ind(ALL))

これらの文は、表の最初の100個の要素を合計する。table-lengthに指定された数が、関数の参照時に、加える要素の数として決定される。

11.6 関数の型

データ項目関数は基本データ項目であり、英数字か

各国語型文字か

数字か整数の値を返す。 データ項目関数は基本データ項目として扱われるが、受取り側の作用対象とすることはできない。データ項目関数には、下記の型がある。

  1. 英数字関数: この型の関数は、字類および項類が英数字に属する。このデータ項目中の文字数は、関数定義中に示される。英数字関数の用途は、暗黙的にDISPLAYとされる。

  2. 数字関数: この型の関数は、字類および項類が数字に属する。数字関数は、つねに演算符号を持つものとみなされる。

  3. 整数関数: この型の関数は、字類および項類が整数に属する。整数関数は、つねに演算符号を持つものとみなされる。

  4. 各国語型関数: この型の関数は、字類および項類が各国語型に属する。このデータ項目中の文字数は、関数定義中に示される。各国語型関数の用途は、暗黙的にNATIONALとされる。

11.7 日付変換関数

日付変換関数では、グレゴリオ歴を使用している。1601年1月1日を開始日とする。この日は月曜日であるので、開始日からの通算日と曜日の関係がとらえやすくなっている。

たとえば、下記の文を実行すると、指定した日の曜日を表わす整数が返される。

compute DoW = function rem (function integer-of-date (date-field) , 7)

値が0の場合は日曜日、1の場合は月曜日といった具合いになる。

11.8 三角関数

三角法は三角形の辺と角の間の関係を取り扱う。角を測る単位には度、ラジアン、グラードがある。コンピュータでは三角関数の値は通常、連続的近似によって算出される。したがって、SIN, COS, TANの各関数の引数またはASIN, ACOS, ATANの各関数から返される値として使用するときは、角度をラジアンで表す。

1ラジアンは長さが半径に等しい円弧である。半径(r)と円周(c)の関係は式C = 2 * π * rで表される。円の一周は360度である。よって、360 = 2 * π * rとなる。このことから、下記の変換率が得られる。

1ラジアン = 180/π = 57.295780度
1度 =  π/180 = 0.01745329ラジアン

その他に、角度を表すのに、グラード(直角の百分の1)という単位が用いられることがある。その変換率は下記のとおりである。

1ラジアン = 200/π = 63.661977グラード
1グラード = π/200 = 0.01570796ラジアン

11.9 関数の定義

使用できる関数を要約して、下記に示す。

The " 引数" の欄には、引数の型と"type" 数を示す。具体的には、下記の型がある。

Alph 英字
Anum 英数字
Int 整数
Nat 各国語型
Num 数字

関数名 引数 関数型 戻り値
ABS Int1 または Num1 引数による 引数の絶対値
ACOS Num1 Num Num1のアークコサイン(逆余弦)
ANNUITY Num1, Int2 Num 一括掛金1に対して、利率Num1で期間Int2にわたって支払われる即時年金の割合
ASIN Num1 Num Num1のアークサイン(逆正弦)
ATAN Num1 Num Num1のアークタンジェント(逆正接)
CHAR Int1 Anum プログラムの文字の照合順序中の、位置Int1にある文字
CHAR-NATIONAL Int1 Nat 各国語型プログラムの照合順序中の、位置Int1にある文字
COS Num1 Num Num1のコサイン(余弦)
CURRENT-DATE なし Anum 現在の日付と時刻と、グリニッジ標準時刻との時差
DATE-OF-INTEGER Int1 Int 整数日付に相当する標準日付(YYYYMMDD)
DATE-TO-YYMMDD Int1 Int 引数-2 の値に基づいてInt2 を YYMMDD からYYYYMMDD に変換された引数-1
DAY-OF-INTEGER Int1 Int 整数日付に相当するジュリアン日付(YYYYDDD)(ユリウス暦)
DAY-TO-YYYYDDD Int1 Int 引数-2 の値に基づいてInt2 を YYDDD からYYYYDDD に変換された引数-1
DISPLAY-OF Nat1, Anum1 Anum 引数Nat1のUSAGE DISPLAY型の表現
E なし Num eの値、自然基数
EXP Num1 Num eのNum1乗
EXP10 Num1 Num 10 のNum1乗
FACTORIAL Int1 Int Int1の階乗
FRACTION-PART Num1 Num Num1の端数部
INTEGER Num1 Int Num1を超えない最大の整数
INTEGER-OF-DATE Int1 Int 標準日付(YYYYMMDD)に相当する整数日付
INTEGER-OF-DAY Int1 Int ジュリアン日付(YYYYDDD)(ユリウス暦)に相当する整数日付
INTEGER-PART Num1 Int Num1の整数部分
LENGTH Alph1 か Anum1 か
Nat1
か Num1
Int 文字番号の引数の長さ
LENGTH-AN Alph1 か Anum1 か Int1 か Nat1 か Num1 Int 英数字文字番号の引数の長さ positions
LOG Num1 Num Num1 の自然対数
LOG10 Num1 Num 10を底とするNum1 の対数
LOWER-CASE Alph1 か Anum1 か
Nat1
引数による 引数中のすべての文字を小文字にする
MAX Alph1 ... か Anum1 ... か Int1 ... か
Nat1 ... か
Num1 ...
引数による * 引数の最大値
MEAN Num1 ... Num 引数の算術平均
MEDIAN Num1 ... Num 引数のメジアン(中央値)
MIDRANGE Num1 ... Num 引数の最小値と最大値の平均値
MIN Alph1 ... か Anum1 ... か Int1 ... か
Nat1 ... か
Num1 ...
引数による * 引数の最小値
MOD Int1, Int2 Int Int1と Int2のモジュロー(法)
NATIONAL-OF Anum1,
Nat1
Nat 引数Anum1のUSAGE NATIONAL型の表現
NUMVAL Anum1 か
Nat1
Num 単純数字文字列の数値
NUMVAL-C Anum1 かAnum2 か
Nat1, Nat2
Num コンマおよび通貨記号を含むことができる、数字文字列の数値
ORD Alph1 か Anum1 か
Nat1
Int 文字の照合順序における、引数の順序番号
ORD-MAX Alph1 ... か Anum1 ... か
Nat1 ... か
Num1
Int 最大の引数の順序番号
ORD-MIN Alph1 ... か Anum1 ... か
Nat1 ... か
Num1
Int 最小の引数の順序番号
PI なし Num
PRESENT-VALUE Num1 Num2 ... Num 将来にわたる時系列データNum2を、利率Num1で割り引いた現在の値
RANDOM Int1 Num 乱数
RANGE Int1 ... か Num1 引数による * 引数の最大値と最小値の差
REM Num1, Num2 Num Num1をNum2で割った剰余
REVERSE Alph1 か Anum1 か
Nat1
引数による 引数中の文字の順序を逆転させる
SIGN Num1 Int Num1 の符号
SIN Num1 Num Num1のサイン(正弦)
SQRT Num1 Num Num1の平方根
STANDARD-DEVIATION Num1 ... Num 引数の標準偏差
SUM Int1 ... か Num1 ... 引数による * 引数の和
TAN Num1 Num Num1 のタンジェント(正接)
UPPER-CASE Alph1 か Anum1 か
Nat1
引数による 引数中のすべての文字を大文字にする
VARIANCE Num1 ... Num 引数の分散
WHEN-COMPILED なし Anum プログラムがコンパイルされた日付と時刻
YEAR-TO-YYYY Int1
Int2
Int 引数-2 の値に基づいてYY から YYYY に変換された引数-1

* 引数がすべて英字である関数の型は、英数字である

11.9.1 ABS 関数

ABS関数は引数の絶対値を返す。

この関数の型は引数の型に応じて下記のようになる。

引数の型
関数の型
整数 整数
数字 数字

一般形式

引数

  1. 引数-1は字類が数字でなければならない。

戻り値

    戻り値は下記のようになる。
    1. 引数-1の値がゼロまたは正である場合、(引数-1)

    2. 引数-1の値が負である場合、-(引数-1)

11.9.2 ACOS 関数

ACOS関数は、引数-1に指定された角または弧(単位はラジアン)のアークコサイン(逆余弦)の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

  2. 引数-1の値は、-1以上+1以下とする。

戻り値

  1. 戻り値は、引数-1のアークコサインの近似値である。その値は0以上π以下である。

    注: 度およびグラードからラジアンへの変換係数をこの章の「三角関数」の節に示してある。


  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.3 ANNUITY 関数

ANNUITY(即時年金)関数は、引数-2に指定された数の期間後に、最初の一括掛金に対して、指定された期間にわたって各期末に支払われる、年金の比率の近似値を返す。利子率は引数-1に指定する。利息は各期末に、支払の前に算出される。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

  2. 引数-1の値は、0以上とする。

  3. 引数-2は、正の整数とする。

戻り値

  1. 引数-1の値が0である場合、この関数の戻り値は下記の式の近似値である。

    1 / 引数-2

  2. 引数-1の値が0でない場合、この関数の戻り値は下記の式の近似値である。

    引数-1 / (1 - (1 + 引数-1) ** (- 引数-2))

  3. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.4 ASIN 関数

ASIN関数は引数-1に指定された角または弧(単位はラジアン)のアークサイン(逆正弦)の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

  2. 引数-1の値は、-1以上+1以下とする。

戻り値

  1. 戻り値は、引数-1のアークサインの近似値である。その値は、-π/2以上+π/2以下である。

    注: 度およびグラードからラジアンへの変換係数をこの章の「三角関数」の節に示してある。


  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.5 ATAN 関数

ATAN関数は、引数-1に指定された角または弧(単位はラジアン)のアークタンジェント(逆正接)の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 戻り値は、引数-1のアークタンジェントの近似値であり、-π/2より大きく+π/2より小さい。

    注: 度およびグラードからラジアンへの変換係数をこの章の「三角関数」の節に示してある。


  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.6 CHAR 関数

CHAR関数は、プログラムの文字の照合順序の中から、引数-1に指定された順序位置にある文字を返す。この関数の型は英数字である。

一般形式

引数

  1. 引数-1は、整数とする。

  2. 引数-1の値は、0よりも大きく、文字の照合順序の文字位置の数以下とする。

戻り値

  1. プログラムの文字の照合順序中の同じ文字位置に、2つ以上の文字が割り当てられている場合、ALPHABET句中でその文字位置に指定されている最初の文字が、この関数の戻り値とされる。

  2. ALPHABET句によって現在のプログラムの文字の照合順序が指定されていない場合、固有の照合順序が使用される。

11.9.7 CHAR-NATIONAL 関数

CHAR-NATIONAL(国別文字)関数は国別の大小順に並べた一連の文字の中から、順位が引数の値に等しい文字を返す。

関数の型は国別である。

一般形式

引数

  1. 引数-1は整数でなければならない。

  2. 引数-1の値は、ゼロよりも大きく、国別の文字の照合順序の最大値以下でなければならない。

戻り値

  1. 戻り値は、国別の大小順に並べた一連の文字の中の、順位が引数の値に等しい文字である。

  2. 現行の国別の文字の照合順序に同じ順位の文字が複数ある場合には、先に出てくる方の文字が戻り値となる。

11.9.8 COS 関数

COS関数は、引数-1に指定された角または弧(単位はラジアン)のコサイン(余弦)の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

    注: 度およびグラードからラジアンへの変換係数をこの章の「三角関数」の節に示してある。


戻り値

  1. 戻り値は、引数-1のコサインの近似値であり、-1以上+1以下である。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.9 CURRENT-DATE 関数

CURRENT-DATE関数は、現在の日時に関する21文字の英数字の値を返す。その細目は、暦日、時刻、関数が実行されたシステムが稼働している地域の時刻とグリニッジ標準時刻との時差である。この関数の型は英数字である。

一般形式

戻り値

  1. 戻り値の文字列の文字位置(左から右に数える)ごとの内容を下に示す。

    文字位置
    内  容
    1-4 グレゴリオ歴の暦年を表わす4桁の数字 calendar.
    5-6 年内の月を表わす2桁の数字。値は01から12まで
    7-8 月内の日を表わす2桁の数字。値は01から31まで
    9-10 真夜中から経過した時間を表わす2桁の数字。値は00から23まで
    11-12 時刻の分を表わす2桁の数字。値は00から59まで
    13-14 時刻の秒を表わす2桁の数字。値は00から59まで
    15-16 1秒の100分の1を表わす2桁の数字。値は00から99まで

    1秒よりも細かく時間を測定する機能のないシステムでは、この値は00となる。

    17 グリニッジ標準時間との時差の遅早を表わす。値は"-"、 " +"、"0"のいずれかである。 この値が"-" の時は、この前の文字位置に示された時間はグリニッジ標準時間よりも遅れていることを示す。この値が "+" の時は、この前の文字位置に示された時間はグリニッジ標準時間と等しいかそれよりも進んでいることを示す。この値が"0" の時は、この関数を実行したシステムにはグリニッジ標準時間との時差を測る機能がないことを示す。

    グリニッジ標準時間との時差を測る機能がないシステムでは、文字位置17から21には値00000が返される。

    18-19 文字位置17の値が"-" の時は、システムで使用されている時刻がグリニッジ標準時間よりも遅れている時間数が、2桁の数字でここに示される。その値は00から12までである。文字位置17の値が"+" の時は、システムで使用されている時刻がグリニッジ標準時間よりも進んでいる時間数が、2桁の数字でここに示される。その値は00から13までである。文字位置17の値が "0" の時は、ここには00が返される。
    20-21 システムで使用されている時刻とグリニッジ標準時間との時差の、1時間に満たない分数を表わす。その値は00から59までである。時差の遅早は文字位置17の値が"+" であるか"-" であるかによって示される。文字位置17の値が"0" の時は、ここには00が返される。

11.9.10 DATE-OF-INTEGER 関数

DATE-OF-INTEGER関数は、グレゴリオ暦の日付を整数形式から標準日付形式(YYYYMMDD)に変換する。この関数の型は整数である。

一般形式

引数

  1. 引数-1は、グレゴリオ暦で1601年1月1日以降の通算日数を表わす正の整数とする。

戻り値

  1. この関数の戻り値は、引数-1に指定した整数に相当するISO標準日付を表わす。

  2. 戻り値は、YYYYMMDDの形式をしている。YYYYはグレゴリオ暦の暦年を表わし、MMとDDはそれぞれ月と日を表わす。

11.9.11 DATE-TO-YYYYMMDD 関数

DATE-TO-YYYYMMDD 関数は引数-1をYYnnnの形からYYYYnnnの形へ変換する。引数-2は実行時に年に追加された時、100年間隔の終了年を定義するか、または引数-1が起こるところへのウィンドウの移動を定義する。この関数の型は整数である。

一般形式

      FUNCTION DATE-TO-YYYYMMDD ( 引数-1 [引数-2] )

引数

  1. 引数-1 は 1,000,000 より小さい、正の整数とする。

  2. 引数-2 は整数とする。

  3. 引数-2 が省略された場合、この関数は 50 が指定されたものとして評価される。

  4. 実行時の年と引数-2 の値の合計は、10,000 より小さく、1699より大きいものとする。

戻り値

  1. 同等の算術式は次のとおりである。

    (FUNCTION YEAR-TO-YYYY (YY, 引数-2) * 10000 + nnnn) ここで:

      YY = FUNCTION INTEGER (引数-1/10000)
       nnnn = FUNCTION MOD (引数-1, 10000)

    INTEGER および MOD 関数の引数-1 と YEAR-TO-YYYY 関数の引数-2 は、DAY-TO-YYYYMMDD 関数自身の引数-1 と引数-2 と同じである。

注:

  1. 2002年では、FUNCTION DATE-TO-YYYYMMDD (851003, 10) の戻り値は 19851003 である。1994年では、FUNCTION DATE-TO-YYYYMMDD (961002, (-10)) の戻り値は 18981002 である。

  2. この関数はウィンドウ移動アルゴリズムを持っている。決まったウィンドウを指定する方法については、YEAR-TO-YYYY 関数の注意の項を参照のこと。

11.9.12 DAY-OF-INTEGER 関数

DAY-OF-INTEGER関数は、グレゴリオ暦の日付を整数形式からジュリアン日付(ユリウス暦)形式(YYYYDDD)に変換する。この関数の型は整数である。

一般形式

引数

  1. 引数-1は、グレゴリオ暦で1601年1月1日以降の通算日数を表わす正の整数とする。

戻り値

  1. この関数の戻り値は、引数-1に指定した整数に相当するジュリアン日付を表わす。

  2. 戻り値は、YYYYDDDの形式をしている。YYYYはグレゴリオ暦の暦年を表わし、DDDは年内の通算日を表わす。

11.9.13 DAY-TO-YYYYDDD 関数

DAY-TO-YYYYDDD 関数は、引数-1 を YYnnn の形から YYYYnnn の形へ変換する。引数-2 は実行時に年に追加された時、100年間隔の終了年を定義するか、または引数-1が起こるところへのウィンドウの移動を定義する。 この関数の型は整数である。

一般形式

      FUNCTION DAY-TO-YYYYDDD ( 引数-1 [引数-2] )

引数

  1. 引数-1 は 100,000 より小さい、正の整数とする。

  2. 引数-2 は整数とする。

  3. 引数-2 が省略された場合、この関数は 50 が指定されたものとして評価される。

  4. 実行時の年と引数-2 の値の合計は、10,000 より小さく、1699より大きいものとする。

戻り値

  1. 同等の算術式は次のとおりである。

    (FUNCTION YEAR-TO-YYYY (YY, 引数-2) * 1000 + nnn)

    ここで:

      YY = FUNCTION INTEGER (引数-1/1000)
      nnn = FUNCTION MOD (引数-1, 1000)

    INTEGER および MOD 関数の引数-1 と YEAR-TO-YYYY 関数の引数-2 は、DAY-TO-YYYYDDD 関数自身の引数-1 と引数-2 と同じである。

注:

  1. 2002年では、FUNCTION DAY-TO-YYYYDDD (10004,20) の戻り値は20101004 である。1994年では、FUNCTION DAY-TO-YYYYDDD (95005, (-10)) の戻り値は 1995005 である。

  2. この関数は、ウィンドウ移動アルゴリズムを持っている。決まったウィンドウを指定する方法については、YEAR-TO-YYYY関数の注意の項を参照のこと。

11.9.14 DISPLAY-OF 関数

DISPLAY-OF関数は引数中の各国語型文字を英数字型の文字表現(外部表現)に変換する。

この関数の型は英数字である。

一般形式

引数

  1. 引数-1の字類は各国語とする。

  2. 引数-2の字類は英字または英数字とし1文字位置の長さを占める。引数-2に指定された文字は、変換時に対応する英数字表現が存在しないような各国語文字に対する置き換え文字として使われる。

戻り値

  1. 引数-1中の一つ一つの各国語文字を対応する英数字表現に変換し、戻り値として返す。各国語文字と英数字との対応は稼動する環境が定義する。

  2. 引数-2が指定されると、対応する英数字表現が存在しないような各国語文字に対してこの文字が戻り値に返される。

  3. 引数-2を指定しない場合、対応する英数字表現が存在しないような各国語文字に対しては、各国語型の外部表現に変換した文字が戻り値に返される。その際に必要な最小限の制御機能が付加される。

  4. 戻り値の長さは、変換された結果を保持するのに必要な、USAGE DISPLAYの文字位置の個数となる。この長さは引数の長さと各国語文字集合の性質によって異なる。

11.9.15 E 関数

E関数は、自然対数の底である、eの近似値を返す。

この関数の型は数字である。

一般形式

戻り値

  1. 戻り値は下記のとおり。

    2.718281828459045235

11.9.16 EXP 関数

EXP関数はeを引数の値分べき乗した値の近似値を返す。

この関数の型は数値である。

一般形式

引数

  1. 引数-1は字類が数字でなければならない。

戻り値

  1. 戻り値は下記のとおり。

    FUNCTION E ** 引数-1

11.9.17 EXP10 関数

EXP10関数は10を引数の値分べき乗した値の近似値を返す。

この関数の型は数字である。

一般形式

引数

  1. 引数-1は字類が数字でなければならない。

戻り値

  1. 戻り値は下記のとおり。

    10 ** 引数-1

11.9.18 FACTORIAL 関数

FACTORIAL関数は、引数-1の階乗である整数を返す。 この関数の型は整数である。

一般形式

引数

  1. 引数-1は、0以上の整数とする。

戻り値

  1. 引数-1の値が0の場合は、値1が返される。

  2. 引数-1の値が正の場合は、その階乗値が返される。

  3. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.19 FRACTION-PART 関数

FRACTION-PART関数は引数の端数部分の数値を返す。

この関数の型は数字である。

一般形式

引数

  1. 引数-1は字類が数字でなければならない。

戻り値

  1. 戻り値は下記のとおり。

    (引数-1 - FUNCTION INTEGER-PART(引数-1))

    ただし、INTEGER-PART関数の引数はFRACTION-PART関数の引数と同じとする。


注: 引数-1の値が+1.5であると、+0.5が返される。引数-1の値が-1.5であると、-0.5が返される。


11.9.20 INTEGER 関数

INTEGER関数は、引数の値以下の整数の最大値を返す。 この関数の型は整数である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. この関数の戻り値は、引数-1以下の値で最大の整数である。たとえば、引数の値が-1.5であると-2が返され、引数-1の値が+1.5であると+1が返される。

11.9.21 INTEGER-OF-DATE 関数

INTEGER-OF-DATE関数は、グレゴリオ暦の日付を標準日付形式(YYYYMMDD)から整数形式に変換する。この関数の型は整数である。

一般形式

引数

  1. 引数-1は、YYYYMMDD形式の整数とする。その値は、下記の式によって算出される。

    (YYYY * 10,000) + (MM * 100) + DD

    1. YYYYはグレゴリオ暦の暦年を表わす。これは1601以上の整数とする。

    2. MMは月を表わす。これは1から12までの整数とする。

    3. DDは日を表わす。これは1から31までの整数とする。ただし、年月の組合わせに対応した有効な日数にすること。

戻り値

  1. この関数の戻り値は、引数-1がグレゴリオ暦で1601年1月1日以降、通算何日目にあたるかを示す整数である。

11.9.22 INTEGER-OF-DAY 関数

INTEGER-OF-DAY関数は、グレゴリオ暦の日付をジュリアン日付(ユリウス暦)形式(YYYYDDD)から整数形式に変換する。この関数の型は整数である。

一般形式

引数

  1. 引数-1は、YYYYDDD形式の整数とする。その値は下記の式によって算出される。

    (YYYY * 1000) + DDD

    1. YYYYはグレゴリオ暦の暦年を表わす。これは1601以上の整数とする。

    2. DDDは日を表わす。これは1から366までの整数とする。ただし、対応する年に応じた有効な日数にすること。

戻り値

  1. この関数の戻り値は、引数-1がグレゴリオ暦で1601年1月1日以降、通算何日目にあたるかを示す整数である。

11.9.23 INTEGER-PART 関数

INTEGER-PART関数は、引数-1の整数部分の値を返す。この関数の型は整数である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 引数-1の値が0の場合は、0が返される。

  2. 引数-1の値が正の場合は、引数-1の値以下の最大の整数が返される。たとえば、引数-1の値が+1.5であれば、+1が返される。

  3. 引数-1の値が負の場合は、引数-1の値以上の最小の整数が返される。たとえば、引数-1の値が-1.5であれば、-1が返される。

11.9.24 LENGTH 関数

LENGTH関数は、英数字文字位置にある引数の長さと同じ整数を返す。

または、引数の字類によっては各国語型文字位置にある引数の長さ。

この関数の型は整数である。

一般形式

引数

  1. 引数-1は、文字定数または任意の字類または項類のデータ項目であってよい。

  2. 引数-1またはその下位に属するデータ項目のいずれかに、OCCURS句のDEPENDING指定がなされている場合、DEPENDING句に指定されたデータ項目によって参照されるデータ項目の内容は、この関数が実行される時点で使用される。

戻り値

  1. 引数-1の字類が各国語型、または各国語型定数の基本データ項目の場合、各国語型文字位置にある引数-1の長さと同じ整数が返される。

  2. あるいは、引数-1が英数字定数、基本データ項目、可変反復データ項目を含まない集団項目のいずれかである場合、英数字文字位置にある引数-1の長さと同じ整数を返す。

  3. 引数-1が可変反復データ項目を含む集団項目である場合、その可変反復データ項目を定義しているOCCURS句のDEPENDING指定の対象となっているデータ項目を評価した結果の文字数を表わす、整数が返される。この評価は、送出し側データ項目に関するOCCURS句の規則に従って行われる。OCCURS 句 の節、およびUSAGE 句 の節を参照。

  4. 暗黙のFILLERがあれば、その文字数も戻り値に含まれる。

11.9.25 LENGTH-AN 関数

LENGTH-AN関数は、引数を英数字の文字位置で数えた、長さを表す整数を返す。

この関数の型は整数である。

一般形式

引数

  1. 引数-1は任意の字類または項類の定数またはデータ項目であってよい。

  2. 引数-1またはその下位の任意のデータ項目にOCCURS句のDEPENDING指定が記述されている場合、LENGTH-AN関数が評価されるときに、DEPENDING指定中のデータ名によって参照されるデータ項目の内容が使用される。

戻り値

  1. 引数-1が基本データ項目である場合、戻り値は引数-1を英数字の文字位置で数えた長さを表す整数である。

  2. 引数-1が集団データ項目である場合、

    1. 引数-1またはその下位の任意のデータ項目にOCCURS句のDEPENDING指定が記述されている場合には、戻り値は送出し側データ項目としての引数-1を英数字の文字位置で数えた長さを表す整数である。その場合のデータ項目の送出しは、OCCURS句の規則に従って、DEPENDING指定中のデータ項目を評価することによって決定される。

    2. そうでない場合には、戻り値は引数-1を英数字の文字位置で数えた長さを表す整数である。

    3. 引数-1に暗黙的な無名項目があれば、戻り値にはその分の長さも含まれる。

11.9.26 LOG 関数

LOG関数は、eを底とする引数-1の対数(自然対数)の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

  2. 引数-1の値は、0より大きくする。

戻り値

  1. eを底とする引数-1の対数の近似値が返される。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.27 LOG10 関数

LOG10関数は、10を底とする引数-1の対数の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

  2. 引数-1の値は、0より大きくする。

戻り値

  1. 10を底とする引数-1の対数の近似値が返される。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.28 LOWER-CASE 関数

LOWER-CASE関数は、文字列中の大文字を対応する小文字に置き換えて、引数-1と同じ長さの文字列を返す。この関数の型は引数によって決まる。具体的には下記のとおり。

引数の型
関数の型
英字 英数字
英数字 英数字
各国語型 各国語型

一般形式

引数

  1. 引数-1は、英字か、英数字か、

    または各国語型文字とし、

    最低1文字の長さがなければならない。

戻り値

  1. 大文字が小文字に置き換えられる点を除けば、引数-1と同じ文字列が返される。

  2. 返される文字列の長さは、引数-1と同じである。

  3. 使用している計算機の文字集合に小文字が含まれていない場合、文字の置換は行われない。

11.9.29 MAX 関数

MAX関数は、引数-1のうちで値が最大であるものの内容を返す。 この関数の型は引数によって決まる。具体的には下記のとおり。

引数の型
関数の型
英字 英数字
英数字 英数字
各国語型 各国語型
すべて整数 整数
数字 数字
(一部に整数を含んでいてもよい)

一般形式

引数

  1. 引数-1を複数指定する場合、その字類はすべて同じにする。ただし、英字と英数字の引数は混在させてもよい。

戻り値

  1. 引数-1のうち、値が最大のものの内容が返される。値を比較する際は、単純条件の規則が適用される。単純条件 の節を参照。

  2. 最大値をもつ引数-1が複数存在する場合、最も左側の引数-1の内容が返される。

  3. 英数字型の関数、

    または各国語型関数

    の場合、返される値の文字数は、選択された引数-1の文字数と同じである。

  4. 引数-1の値が非整数の場合、結果は浮動小数点形式で戻される。

11.9.30 MEAN 関数

MEAN関数は、引数の算術平均値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 一連の引数-1の算術平均値が返される。

  2. この算術平均値は、一連の引数-1の和を引数-1の数で割ったものである。

  3. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.31 MEDIAN 関数

MEDIAN関数は、引数のメジアン(値によって整列したときに中央に来る引数)の内容を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 一連の引数-1を値によって整列したときに、中央に来る引数の内容が返される。

  2. 指定した引数-1の数が奇数の場合、引数-1の数の少なくとも半分が戻り値以上の値となり、少なくとも半分が戻り値以下の値となるような値が返される。指定した引数-1の数が偶数の場合、中央に来る2つの引数の算術平均値が返される。

  3. 引数-1の値を整列する際の比較には、単純条件の規則が適用される。単純条件の節を参照。

  4. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.32 MIDRANGE 関数

MIDRANGE関数は、引数の最小値と最大値の算術平均値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 引数-1の最小値と最大値の算術平均値が返される。

  2. 最小値と最大値を判定する際の比較には、単純条件の規則が適用される。単純条件 の節を参照。

  3. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.33 MIN 関数

MIN関数は、引数-1のうちで値が最小であるものの内容を返す。この関数の型は引数によって決まる。具体的には下記のとおり。

引数の型
関数の型
英字 英数字
英数字 英数字
各国語型 各国語型
すべて整数 整数
数字 数字
(一部に整数を含んでいてもよい)

一般形式

引数

  1. 引数-1を複数指定する場合、その字類はすべて同じにする。ただし、英字と英数字の引数は混在させてもよい。

戻り値

  1. 引数-1のうち、値が最小のものの内容が返される。値を比較する際は、単純条件の規則が適用される。単純条件の節を参照。

  2. 最小値をもつ引数-1が複数存在する場合、最も左側の引数-1の内容が返される。

  3. 英数字型の関数、

    または各国語型関数

    の場合、返される値の文字数は、選択された引数-1の文字数と同じである。

  4. 引数-1の値が非整数の場合、結果は浮動小数点形式で戻される。

11.9.34 MOD 関数

MOD関数は、引数-1を引数-2で割ったときのモジュロー(法、割り切れる値との差)を整数値で返す。 この関数の型は整数である。

一般形式

引数

  1. 引数-1と引数-2は、整数とする。

  2. 引数-2の値は、0であってはならない。

戻り値

  1. 引数-1を引数-2で割ったときのモジュローが返される。その計算式は下記のとおり。

    引数-1 - (引数-2 * FUNCTION INTEGER (引数-1 / 引数-2))

  2. どのような結果が得られるかを下に例示する。

    引数-1
    引数-2
    戻り値
    11 5 1
    -11 5 4
    11 -5 -4
    -11 -5 -1

11.9.35 NATIONAL-OF 関数

NATIONAL-OF関数は引数中の英数字型文字を各国語型の文字表現(内部表現)に変換する。

この関数の型は各国語である。

一般形式

引数

  1. 引数-1の字類は英字または英数字とする。英数字の場合、引数-1には、英数字文字、各国語文字またはその両方が外部表現の形式で含まれ得る。

  2. 引数-2の字類は各国語とし1文字位置の長さを占める。引数-2に指定された文字は、変換時に対応する各国語表現が存在しないような英数字文字に対する置き換え文字として使われる。

戻り値

  1. 引数-1中の一つ一つの英数字文字を対応する各国語表現に変換し、戻り値として返す。引数-1に含まれる外部表現が持つすべての制御機能は、単に文字種別を判別するためだけに用いられ、変換対象の文字とは見なされない。

  2. 引数-2が指定されると、対応する内部形式の各国語表現が存在しないような英数字文字に対してこの文字が戻り値に返される。

  3. 引数-2を指定しない場合、対応する内部形式の各国語表現が存在しないような英数字文字に対しては、各国語型の空白文字が戻り値に返される。

  4. 戻り値の長さは、変換された結果を保持するのに必要な、USAGE NATIONALの文字位置の個数となる。この長さは引数-1の長さによって定まる。

11.9.36 NUMVAL 関数

NUMVAL関数は、引数-1に指定された文字列によって表わされる数値を返す。前後の空白は無視される。この関数は数字型である。

一般形式

引数

  1. 引数-1は英数字定数

    か各国語型定数、

    または英数字データ項目

    か各国語型データ項目

    であり、下記のどちらかの形式をとる。

    または

    ここで、空白はいくつか(0個を含む)の空白文字の文字列を表わし、数字は1桁から18桁までの数字列を表わす。

  2. 引数-1の合計桁数は、18を超えてはならない。

  3. 特殊名段落にDECIMAL POINT IS COMMA句を指定した場合は、引数-1内でも小数点の代わりにコンマを使用する。

戻り値

  1. 引数-1によって表わされる数値が返される。

  2. 返される数値の桁数は18である。

  3. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.37 NUMVAL-C 関数

NUMVAL-C関数は、引数-1に指定された文字列によって表わされる数値を返す。引数-2で指定された任意の通貨記号、または小数点の前にある任意のコンマは無視される。この関数は数字型である。

一般形式

引数

  1. 引数-1は英数字定数か

    各国語型定数、

    または英数字データ項目か

    各国語型データ項目

    であり、下記のどちらかの形式とする。

    または

    ここで、空白はいくつか(0個を含む)の空白文字の文字列を表わし、通貨記号は引数-2に指定した文字の何文字かの文字列を表わし、数字は何桁かの数字列を表わす。

  2. 特殊名段落にDECIMAL POINT IS COMMA句を指定した場合は、引数-1中のコンマと小数点の役割が逆転される。

  3. 引数-1の合計桁数は、18を超えてはならない。

  4. 引数-2を指定した場合は、引数-1と同じ字類とする。

    引数-2に数字、コンマ、空白、正号(+)、負号(-)、小数点を指定してはならない。

  5. 引数-2を指定しないと、引数-1の字類が英数字の時には、通貨記号はプログラムに指定したものが使用される。

    ; または引数-1の字類が各国語型の時には,通貨記号はプログラムで指定した各国語型表現のものが使用される。通貨記号の表現は、 FUNCTION NATIONAL-OF (cs)から戻される値である。

戻り値

  1. 引数-1によって表わされる数値が返される。

  2. 返される数値の桁数は18である。

  3. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.38 ORD 関数

ORD関数は、プログラムの文字の照合順序中で、引数-1が位置する順序を示す整数値を返す。順序番号の最小値は1である。この関数の型は整数である。

一般形式

引数

  1. 引数-1は、字類が英字か英数字か

    各国語型文字の1文字とする。

戻り値

  1. 引数-1の字類が英字か英数字の場合、プログラムの英数字文字の照合順序中で、引数-1が位置する順序を示す値が返される。

  2. 引数-1の字類が各国語型の場合、プログラムの現行の国の照合順序中で、引数-1が位置する順序を示す値が返される。

11.9.39 ORD-MAX 関数

ORD-MAX関数は、引数-1の中で値が最大のものの順序番号を返す。この関数の型は整数である。

一般形式

引数

  1. 引数-1を複数指定する場合、その字類はすべて同じにする。ただし、英字と英数字の引数は混在させてもよい。

戻り値

  1. 一連の引数-1のうち、値が最大のものの順序番号が返される。

  2. 最大値を決めるために値を比較する際は、単純条件の規則が適用される。単純条件 の節を参照。

  3. 最大値をもつ引数-1が複数存在する場合、そのうちの最も左側のものの順序番号が返される。

11.9.40 ORD-MIN 関数

ORD-MIN関数は、引数-1の中で値が最小のものの順序番号を返す。この関数の型は整数である。

一般形式

引数

  1. 引数-1を複数指定する場合、その字類はすべて同じにする。ただし、英字と英数字の引数は混在させてもよい。

戻り値

  1. 一連の引数-1のうち、値が最小のものの順序番号が返される。

  2. 最小値を決めるために値を比較する際は、単純条件の規則が適用される。単純条件 の節を参照。

  3. 最小値をもつ引数-1が複数存在する場合、そのうちの最も左側のものの順序番号が返される。

11.9.41 PI 関数

PI関数は円周率の近似値を返す。

この関数の型は数字である。

一般形式

戻り値

  1. 戻り値は下記のとおり。

    3.141592653589793238

11.9.42 PRESENT-VALUE 関数

PRESENT-VALUE関数は、引数-2に指定される将来の一連の期間にわたる値を、引数-1に指定される率で割り引いた、現在の値の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1および引数-2の字類は、数字とする。

  2. 引数-1の値は、-1よりも大きくする。

戻り値

  1. 各期ごとに下記の式によって算出した、一連の値の和の近似値が返される。

       引数-2 / (1+引数-1) ** n

    引数-2の1つの値ごとに、1つの期が想定される。指数nは1から始まって、期が進むごとに1ずつ繰り上げられる。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.43 RANDOM 関数

RANDOM関数は、一様分布から擬似乱数値を1つ返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1を指定する場合、その値は0または正の整数とする。引数-1は、一連の疑似乱数を発生させるためのシード値として使用される。

  2. 後で別の引数-1を指定すると、新しい一連の擬似乱数が生成される。

  3. 実行単位内で最初にこの関数が実行されるときに引数-1が指定されていないと、シード値として0が使用される。

  4. いずれの場合も、引数-1を指定しないでこの関数を繰り返し実行すると、現在の一連の乱数中の次の値が返される。

戻り値

  1. 0以上1未満の値が返される。

  2. 特定の処理系における特定のシード値に対して発生される一連の擬似乱数は、つねに同じである。

  3. 引数-1の値の定義域は、別に一連の擬似乱数を発生させる。この部分集合には、0から最低32767までの値が含まれる。

  4. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.44 RANGE 関数

RANGE関数は、最大の引数値と最小の引数値との差を返す。この関数の型は、引数の型によって決まる。具体的には下記のとおり。

引数の型
関数の型
すべて整数 整数
数字 数字
(一部に整数を含んでいてもよい)

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 引数-1の最大値から、引数-1の最小値を差し引いた値が返される。

  2. 最大値および最小値を決めるために値を比較する際は、単純条件の規則が適用される。単純条件の節を参照。

  3. 引数-1の値が非整数の場合、結果は浮動小数点形式で戻される。

11.9.45 REM 関数

REM関数は、引数-1を引数-2で割った剰余値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1と引数-2の字類は、数字とする。

  2. 引数-2の値は、ゼロであってはならない。

戻り値

  1. 引数-1を引数-2で割った剰余値が返される。その計算式は下記のとおり。

      引数-1 - (引数-2 * FUNCTION INTEGER-PART (引数-1 /引数-2))

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.46 REVERSE 関数

REVERSE関数は、引数-1の文字列の順序を逆転させた同じ長さの文字列を返す。この関数の型は、引数の型によって決まる。具体的には下記のとおり。

引数の型
関数の型
英字 英数字
英数字 英数字
各国語型 各国語型

一般形式

引数

  1. 引数-1は、字類が英字か英数字か

    各国語型

    であり、長さは最低でも1文字とする。

戻り値

  1. 引数-1の文字列の長さをn、その中の任意の文字の位置をjとすると(1 << n )、返される文字列中の文字位置jにある文字は、元の文字列のn-j+1の位置から持って来たものである。

11.9.47 SIGN 関数

SIGN関数は引数の正負の範囲に応じて、+1, 0, -1のどれかを返す。

この関数の型は整数である。

一般形式

引数

  1. 引数-1の字類は数字とする。

戻り値

  1. 戻り値は下記のとおり。

    1. 引数-1が正の数である場合には、1

    2. 引数-1の値がゼロである場合には、0

    3. 引数-1が負の数である場合には、-1

11.9.48 SIN 関数

SIN関数は、引数-1に指定された角または弧(単位はラジアン)のサイン(正弦)の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。


注: 度およびグラードからラジアンへの変換係数をこの章の「三角関数」の節に示してある。


戻り値

  1. 引数-1の、サインの近似値が返される。その値は-1以上+1以下である。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.49 SQRT 関数

SQRT関数は、引数-1の平方根の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

  2. 引数-1の値は0または正の整数とする。

戻り値

  1. 引数-1の平方根の、近似値の絶対値が返される。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.50 STANDARD-DEVIATION 関数

STANDARD-DEVIATION関数は、引数の標準偏差の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 一連の引数-1の標準偏差の近似値が返される。

  2. 計算手順は下記のとおり。

    1. 一連の引数-1の算術平均を算出する。各引数-1の値からその平均値を引いて、差異を算出する。各差異を2乗する。

    2. 各2乗値を加算する。 その和を引数-1の数で割る。

    3. その商の平方根を求める。 その平方根の絶対値を戻り値とする。

  3. 引数-1が1つしかない場合、または一連の引数-1がすべて可変の反復データ項目から成りそのすべてについて反復数が1である場合、ゼロが返される。

  4. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.51 SUM 関数

SUM関数は、引数の値の和を返す。この関数の型は、引数の型によって決まる。具体的には下記のとおり。

引数の型
関数の型
すべて整数 整数
数字 数字
(一部に整数を含んでいてもよい)

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 引数の値の和が返される。

  2. 一連の引数-1がすべて整数であれば、戻り値は整数である。

  3. 一連の引数-1の中に整数でないものがあれば、戻り値は浮動小数形式の数字である。

11.9.52 TAN 関数

TAN関数は、引数-1に指定された角または弧(単位はラジアン)のタンジェント(正接)の近似値を返す。 この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。


注: 度およびグラードからラジアンへの変換係数をこの章の「三角関数」の節に示してある。


戻り値

  1. 引数-1のタンジェントの近似値が返される。

  2. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.53 UPPER-CASE 関数

UPPER-CASE関数は、引数-1の文字列中の小文字を対応する大文字に置き換えた同じ長さの文字列を返す。この関数の型は、引数の型によって決まる。具体的には下記のとおり。

引数の型
関数の型
英字 英数字
英数字 英数字
各国語型 各国語型

一般形式

引数

  1. 引数-1は、字類が英字か英数字か

    各国語型

    であり、最低でも1文字の長さとする。

戻り値

  1. 小文字が対応する大文字に置き換えられる点を除けば、引数-1と同じ文字列が返される。

  2. 返される文字列の長さは、引数-1と同じである。

11.9.54 VARIANCE 関数

VARIANCE関数は、引数の分散の近似値を返す。この関数の型は数字である。

一般形式

引数

  1. 引数-1の字類は、数字とする。

戻り値

  1. 一連の引数-1の分散の近似値が返される。

  2. 分散は標準偏差を2乗したものである。 (前述の STANDARD-DEVIATION関数の節を参照)

  3. 引数-1が1つしかない場合、または一連の引数-1がすべて可変の反復データ項目から成りそのすべてについて反復数が1である場合、ゼロが返される。

  4. 数値が非整数の結果には、浮動小数点形式が使用される。

11.9.55 WHEN-COMPILED 関数

WHEN-COMPILED関数は、プログラムがコンパイルされた日付と時刻を返す。この関数の型は英数字である。

一般形式

戻り値

  1. 戻り値の、文字列の文字位置(左から右に数える)ごとの内容を下に示す。

    文字位置
    内  容
    1-4 グレゴリオ歴の暦年を表わす4桁の数字
    5-6 年内の月を表わす2桁の数字。値は01から12まで
    7-8 月内の日を表わす2桁の数字。値は01から31まで
    9-10 真夜中から経過した時間を表わす2桁の数字。値は00から23まで
    11-12 時刻の分を表わす2桁の数字。値は00から59まで
    13-14 時刻の秒を表わす2桁の数字。値は00から59まで
    15-16 1秒の100分の1を表わす2桁の数字。値は00から99まで

    1秒よりも細かく時間を測定する機能のないシステムでは、この値は00となる。

    17 グリニッジ標準時間との時差の遅早を表わす。値は"-", " +", "0" のいずれかである。この値が"-"の時は、この前の文字位置に示された時間はグリニッジ標準時間よりも遅れていることを示す。この値が"+"の時は、この前の文字位置に示された時間はグリニッジ標準時間と等しいかそれよりも進んでいることを示す。この値が"0"の時は、この関数を実行したシステムにはグリニッジ標準時間との時差を測る機能がないことを示す。

    グリニッジ標準時間との時差を測る機能がないシステムでは、文字位置17から21には値0000が返される。

    18-19 文字位置17の値が"-"の時は、システムで使用されている時刻がグリニッジ標準時間よりも遅れている時間数が、2桁の数字でここに示される。その値は00から12までである。文字位置17の値が"+"の時は、システムで使用されている時刻がグリニッジ標準時間よりも進んでいる時間数が、2桁の数字でここに示される。その値は00から13までである。文字位置17の値が"0"の時は、ここには00が返される。
    20-21 システムで使用されている時刻とグリニッジ標準時間との時差の、1時間に満たない分数を表わす。その値は00から59までである。時差の遅早は文字位置17の値が"+"であるか"-"であるかによって示される。

    文字位置17の値が"0"の時は、ここには00が返される。

  2. この関数を含むプログラムがコンパイルされた日付と時刻が返される。プログラムが他のプログラムに含まれている場合には、含む方のプログラムがコンパイルされたときの日付と時刻が返される。

  3. ここに返される値は、該当するプログラムの原始プログラム・リストおよび実行用プログラムに付けられているものと同じである。ただし、その表現形式と精度は異なる。

11.9.56 YEAR-TO-YYYY 関数

YEAR-TO-YYYY 関数は、引数-1 を、年の下位の 2桁から 4桁の年へ変換する。引数-2 は実行時に年に追加された時、100年間隔の終了年を定義するか、または引数-1 が起こるところへのウィンドウの移動を定義する。この関数の型は整数である。

一般形式

      FUNCTION YEAR-TO-YYYY ( 引数-1 [引数-2] )

引数

  1. 引数-1 は 100 より小さい、負でない整数とする。

  2. 引数-2 は整数とする。

  3. 引数-2 が省略された場合、この関数は 50 が指定されたものとして評価される。

  4. 実行時の年と引数-2 の値の合計は、10,000 より小さく、1699より大きいものとする。

戻り値

  1. 最大年は次のように計算される。

    (FUNCTION NUMVAL (FUNCTION CURRENT-DATE (1:4)) + 引数-2)

    ここで、NUMVAL 関数の引数-2 は YEAR-TO-YYYY 関数自身の引数-2 と同じである。

  1. 同等の算術式は次のとおりである。

    1. 以下の条件が真のとき:

      (FUNCTION MOD (最大年, 100) > = 引数-1)

      同等の算術式:

      引数-1 + 100 * (FUNCTION INTEGER (最大年/100))

    2. それ以外のときの、同等の算術式:

      引数-1 + 100 * (FUNCTION INTEGER (最大年/100) - 1)

注:

  1. 1995年では、FUNCTION YEAR-TO-YYYY (4, 23) の戻り値は2004 である。2008年では、FUNCTION YEAR-TO-YYYY (98, (-15))の戻り値は 1898 である。

  2. YEAR-TO-YYYY 関数はウィンドウ移動アルゴリズムを持っている。これをきまったウィンドウに使用するには、引数-2を次のように指定できる。ここで、固定最大年は固定した 100年間隔での最大年とする。

    (固定最大年 - FUNCTION NUMVAL (FUNCTION CURRENT-DATE (1:4)))

    決まったウィンドウが 1973 から 2072 の場合、2009 では引数-2 は値 63 を持ち、2019 では値 53 を持つ。


Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名 は国際法によって保護されています。

前ページへ 次ページへ