COBOL言語の関数「INTEGER、INTEGER-PART」ついて理解しよう! | 用語辞典
COBOL(コボル)言語の組み込み関数「INTEGER、INTEGER-PART」を使用した数値の整数化とは
COBOL(コボル)言語の関数INTEGER、INTEGER-PARTとは?
COBOL言語には、使用頻度の高い機能が、組み込み関数としてあらかじめ用意されています。
関数INTEGERと関数INTEGER-PARTは、COBOL言語で用意されている組み込み関数で、数値データを整数に変換する機能があります。
INTEGERの形式
INTEGERは、引数に指定された数値データの値以下の最大値になる整数を関数値として返却します。
■書式
FUNCTION INTEGER(変換する数値データ)
■構文規則
<変換する数値データ>
変換する数値データ項目や数値定数を指定します。
■使用例
関数INTEGERを使用するプログラム例をご紹介します。
以下のプログラム例では、マイナスの数値定数「-1.5」とプラスの数値定数「+1.5」を、関数INTEGERを使用して、整数値に変換しています。
■実行結果
マイナスの数値定数「-1.5」とプラスの数値定数「+1.5」が、それぞれの値以下で最大値となる整数に変換され、プログラムが終了しました。
INTEGER-PARTの形式
INTEGER-PARTは、引数に指定された数値データの整数部を取り出し、関数値として返却します。
■書式
FUNCTION INTEGER-PART(変換する数値データ)
■構文規則
<変換する数値データ>
変換する数値データ項目や数値定数を指定します。
■使用例
関数INTEGER-PARTを使用するプログラム例をご紹介します。
以下のプログラム例では、マイナスの数値定数「-1.5」とプラスの数値定数「+1.5」を、関数INTEGER-PARTを使用し、整数値に変換しています。
■実行結果
マイナスの数値定数「-1.5」とプラスの数値定数「+1.5」から整数部が取り出され、プログラムが終了しました。
関数INTEGER、INTEGER-PARTのCOBOL(コボル)言語における基本事項やルールについて
関数INTEGERは、引数に指定された数値データ項目や数値定数の値以下になる最大の整数を、関数INTEGER-PARTは、引数に指定された数値データ項目や数値定数の整数部を、関数値として返却する組み込み関数です。
どちらの関数も引数にゼロを指定した場合、ゼロが返却されます。
また、どちらの関数も引数がゼロ以上の場合、返却される関数値は同じですが、引数がゼロ未満の場合、返却される関数値が異なること覚えておきましょう。
COBOL(コボル)言語の関数INTEGER、INTEGER-PARTを使うときの注意点
関数INTEGER-PARTは引数の整数部を返却するので理解しやすいのですが、関数INTEGERは引数以下の最大整数を返却するため、引数がマイナスの場合には注意が必要です。
例えば、「-1.5」を引数に指定すると、「-2」が返却されますが、「-2」ではなく「-1」が返却されると勘違いしやすいので注意してください。
関数INTEGER、INTEGER-PARTを使ったCOBOL(コボル)プログラムの活用方法
業務プログラムでは、小数部のある数値データを値域ごとに集計し、最終的に小数部を切り捨てて整数化しなければならない場合があります。そうした場合、整数化手法のひとつとして、関数INTEGERや関数INTEGER-PARTを使用することができます。
では、0.1から9.9までの値をコンソールからランダムに入力し、整数部ごとの入力値の合計、合計の小数点以下を切り捨て整数化した値、および入力回数を表示するプログラム例をご紹介します。
ピンク色のマーカー部分が、整数化に関数INTEGER、または関数INTEGER-PARTを使用している部分です。
- ******************************************************************
- * Author:
- * Date:
- * Purpose:
- * Tectonics: cobc
- ******************************************************************
- IDENTIFICATION DIVISION.
- PROGRAM-ID. INTEGER_SAMPLE3.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 WORKING-AREA.
- 03 CNSL-INPUT PIC S9(3)V9.
- 03 SHUKEI OCCURS 10.
- 05 SHU-CNT PIC 9(3) VALUE ZERO.
- 05 SHU-TOTAL PIC 9(3)V9 VALUE ZERO.
- 03 SHUKEI-IDX PIC 9(2).
- 03 DISP-SHUKEI.
- 05 D-IDX1 PIC 99.
- 05 D-DLM1 PIC X(1) VALUE "-".
- 05 D-IDX2 PIC 99.
- 05 D-DLM2 PIC X(6) VALUE ":合計[".
- 05 D-SHU-TOTAL PIC 999.9.
- 05 D-DLM3 PIC X(12) VALUE "]--> 整数部[".
- 05 D-INT-TOTAL PIC 999.
- 05 D-DLM4 PIC X(12) VALUE "] 入力回数[".
- 05 D-SHU-CNT PIC 999.
- 05 D-DLM5 PIC X(1) VALUE "]".
- *-------------------------------------------
- * 主手続
- *-------------------------------------------
- PROCEDURE DIVISION.
- DISPLAY "整数部1桁、小数部1桁の正の値を入力してください".
- DISPLAY "集計を終了する場合は0以下の値を入力してください".
- MOVE 1 TO CNSL-INPUT.
- PERFORM SHUKEI-PROC UNTIL CNSL-INPUT <= 0.0.
- PERFORM DISP-PROC.
- STOP RUN.
- *-------------------------------------------
- * 集計処理
- *-------------------------------------------
- SHUKEI-PROC.
- * コンソール入力
- ACCEPT CNSL-INPUT FROM CONSOLE.
- * 合計値と入力回数の集計
- IF CNSL-INPUT > 0 THEN
- MOVE FUNCTION INTEGER(CNSL-INPUT)
- TO SHUKEI-IDX
- ADD CNSL-INPUT TO SHU-TOTAL(SHUKEI-IDX)
- ADD 1 TO SHU-CNT(SHUKEI-IDX)
- END-IF.
- EXIT.
- *-------------------------------------------
- * 集計結果の表示処理
- *-------------------------------------------
- DISP-PROC.
- DISPLAY "集計結果".
- PERFORM VARYING SHUKEI-IDX FROM 1 BY 1
- UNTIL SHUKEI-IDX = 10
- IF SHU-CNT(SHUKEI-IDX) > 0 THEN
- SUBTRACT 1 FROM SHUKEI-IDX GIVING D-IDX1
- MOVE SHUKEI-IDX TO D-IDX2
- MOVE SHU-TOTAL(SHUKEI-IDX) TO D-SHU-TOTAL
- MOVE FUNCTION INTEGER-PART(SHU-TOTAL(SHUKEI-IDX))
- TO D-INT-TOTAL
- MOVE SHU-CNT(SHUKEI-IDX) TO D-SHU-CNT
- DISPLAY DISP-SHUKEI
- END-IF
- END-PERFORM.
- EXIT.
- END PROGRAM INTEGER_SAMPLE3.
■実行結果
はじめに集計データの入力を促すメッセージが表示されます。
集計データとして、1.1、1.2、2.2、4.4を入力してみます。
集計を終了させるために、0を入力します。
集計結果が表示され、プログラムが終了しました。
関数INTEGERと関数INTEGER-PARTによる数値の整数化は、使い方を正しく覚えてしまえば、実務でも便利に使えるテクニックです。ぜひ、使い方を覚えて活用しましょう。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- 【COBOL言語】条件分岐処理の代名詞「IF文」について知ろう|用語辞典
- COBOL言語の「MOVE文」とは?転記のルールをご紹介します|用語辞典
- COBOL言語の「STRING文」とは?文字連結の基礎知識と注意点|用語辞典
- 多枝分岐ってなに?COBOL言語の「EVALUATE文」を知ろう!|用語辞典
- COBOL言語の「PICTURE句」とは?基本事項を解説します!|用語辞典
- COBOL言語で計算処理をするなら「COMPUTE文」|用語辞典
- COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典
- 覚えておけば楽ができる?COBOL言語の「COPY文」の使い方|用語辞典
- COBOL言語の文字列操作のパターンを理解しよう!|基礎ガイド
- COBOL言語の初期化処理に重宝する「INITIALIZE文」とは?|用語辞典
- COBOL言語の「LOW-VALUE」の使い方について理解しよう!|基礎ガイド
- COBOL言語の「OCCURS句」について知ろう!学ぶべき基本とは|用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|用語辞典
- COBOL言語の「PERFORM文」とは。実行制御について解説!|用語辞典
- COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
- COBOL言語の「定数」の種類と使い方について理解しよう!|用語辞典
- COBOLのDBアクセスパターンを学ぼう!「FETCH」|応用ガイド
- COBOL言語の「DISPLAY文」は、ディスプレイ出力の為にある|用語辞典
- COBOL言語の「VARYING句」は便利?使用方法を学びましょう|用語辞典