COBOL言語の関数「MOD」について理解しよう!|用語辞典
COBOL(コボル)言語の予約語MODを使ったモジュロの算出とは
COBOL(コボル)言語のMOD関数とは?
COBOL(コボル)の組込み関数であるMOD関数は、ある数値を別の数値で割る事によって割りきれないで残った数、モジュロ値を求めたい場合に使用します。似た関数にREM関数があり、この関数でも同じような結果値を得ることができますが、REM関数とMOD関数では、剰余の正負の符号決定のされ方が異なっており、REM関数では被除数、MOD関数では除数と同じ符号となるように計算がされます。では早速COBOL言語での使い方について見ていきましょう。
書き方(MOD関数):
FUNCTION MOD(引数1 引数2)
・関数の型:数字型
・引数1:割られる数値を指定します。
・引数2:割る数値を指定します。割る数値は0以外の整数を指定します。
・戻り値:引数1を引数2で割った時のモジュロ値です。
使用例:
実行結果:
MOD関数のCOBOL(コボル)言語における基本事項やルールについて
1.「MOD」の間の空白や改行は、自由に設定できます。
2.組込み関数の前には予約語「FUNCTION」を指定する必要があります。
3.引数2で割る数値は0以外の整数を指定する必要があります。
COBOL(コボル)言語のMOD関数を扱う上での注意点
COBOL言語のMOD関数は、以下の演算式で定義する事ができます。
引数1 - (引数2 * FUNCTION INTEGER (引数1 / 引数2))」
式の中で使用している予約語「INTEGER」は、引数値を超えない最大の整数を求めたい場合に使用します。負数の場合に注意が必要で、例えば-12/5=-2.4の場合、-3が結果値として返ってきます。似た予約語にINTEGER-PARTがありますが、こちらは小数点以下を切り捨てた整数値が結果値として返ってきますので、使用する際は注意しましょう。
MOD関数を使ったCOBOL(コボル)プログラムの活用法
MOD関数は、先ほどご紹介した通りある数値を別の数値で除算し、その余りを取得したい場合に使用する関数でした。ここでは活用法として、MOD関数とMOD関数を求める演算式を用いた場合の2種類のプログラミングを記述して、結果値及びMOD関数の動きについて理解を深めてみましょう。例では、割られる数として、0、正の数値、負の数値、割る数としても、正の数値、負の数値の組み合わせ、結果を確認してみましょう。
サンプルプログラム(MOD2):
- IDENTIFICATION DIVISION.
- PROGRAM-ID. MOD_SAMPLE2.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 WK-SUJI.
- 03 WK-SUJI-0 PIC S99 VALUE ZERO.
- 03 WK-SUJI-SEI PIC S99 VALUE 12.
- 03 WK-SUJI-FU PIC S99 VALUE -12.
- 01 WK-RESULT.
- 03 WK-R1 PIC S99.
- 03 WK-R2 PIC S99.
- 03 WK-R3 PIC S99.
- PROCEDURE DIVISION.
- DISPLAY "割られる数値:0、割る数値:5".
- COMPUTE WK-R1 = FUNCTION MOD(WK-SUJI-0 5).
- DISPLAY WK-R1.
- COMPUTE WK-R1 = WK-SUJI-0 - (5 * FUNCTION INTEGER (WK-SUJI-0/5)).
- DISPLAY WK-R1.
- DISPLAY "割られる数値:0、割る数値:-5".
- COMPUTE WK-R1 = FUNCTION MOD(WK-SUJI-0 -5).
- DISPLAY WK-R1.
- COMPUTE WK-R1 = WK-SUJI-0 - (-5 * FUNCTION INTEGER (WK-SUJI-0/-5)).
- DISPLAY WK-R1.
- DISPLAY "割られる数値:12、割る数値:5".
- COMPUTE WK-R2 = FUNCTION MOD(WK-SUJI-SEI 5).
- DISPLAY WK-R2.
- COMPUTE WK-R2 = WK-SUJI-SEI - (5 * FUNCTION INTEGER (WK-SUJI-SEI/5)).
- DISPLAY WK-R2.
- DISPLAY "割られる数値:12、割る数値:-5".
- COMPUTE WK-R2 = FUNCTION MOD(WK-SUJI-SEI -5).
- DISPLAY WK-R2.
- COMPUTE WK-R2 = WK-SUJI-SEI - (-5 * FUNCTION INTEGER (WK-SUJI-SEI/-5)).
- DISPLAY WK-R2.
- DISPLAY "割られる数値:-12、割る数値:5".
- COMPUTE WK-R3 = FUNCTION MOD(WK-SUJI-FU 5).
- DISPLAY WK-R3.
- COMPUTE WK-R3 = WK-SUJI-FU - (5 * FUNCTION INTEGER (WK-SUJI-FU/5)).
- DISPLAY WK-R3.
- DISPLAY "割られる数値:-12、割る数値:-5".
- COMPUTE WK-R3 = FUNCTION MOD(WK-SUJI-FU -5).
- DISPLAY WK-R3.
- COMPUTE WK-R3 = WK-SUJI-FU - (-5 * FUNCTION INTEGER (WK-SUJI-FU/-5)).
- DISPLAY WK-R3.
- STOP RUN.
実行結果(MOD2):
今回ご紹介したMODのサンプルプログラムは、ある数値を別の数値で除算し、その余りを取得したい場合に使用する関数でした。余りは、情報通信で使用されている暗号や,通信路の誤りを訂正する技術分野で活用されていますので、是非この機会に一度サンプルプログラムを作成して機能の理解を深め、実際のプログラミングに活用いただければと思います。
この記事を読んだ人は、こちらの記事も読んでいます
【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語で計算処理をするなら「COMPUTE文」|入門用語辞典
- COBOL言語の「ACCEPT文」の使い方を分かり易く解説|入門用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のCOPY文活用法|応用ガイド
- 一歩先を行くCOBOL言語の表操作!逐次検索と二分検索|応用ガイド
- COBOL言語の加算処理の基本を伝授! 命令文「ADD」とは?|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のファイル併合処理|応用ガイド
- COBOL言語でファイルの開閉命令はOPEN文とCLOSE文!|入門用語辞典
- 徹底解説!一歩先を行くCOBOL言語のデータ共有|応用ガイド
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- COBOL言語の歴史とこれまでの進化を知る!廃止・追加機能|基礎ガイド
- COBOL言語のオブジェクト指向について理解しよう!|基礎ガイド
- COBOL言語のディスプレイ出力とコンソール入力について|基礎ガイド
- COBOL言語が得意とする計算処理を体験してみよう!|基礎ガイド
- 一歩先を行くCOBOL言語のユーザ定義関数について|応用ガイド
- 初心者から中級者でも安心!理解できるCOBOL言語の勉強法|学習講座
- 初心者必見!COBOL言語を効率よくマスターする勉強法とは|学習講座
- COBOL初心者が犯しやすいミスとその対策について|学習講座
- COBOL初心者がやってはいけない勉強方法とは?|学習講座
- 一歩先へ行くCOBOLプログラマの知っておくべき4つのヒント|学習講座