COBOL言語の数値操作のパターンを理解しよう!|基礎ガイド

COBOL(コボル)言語でよく利用される数値操作のパターンとは

基礎-数値操作のパターン-イメージ

COBOL(コボル)言語の数値操作とは?

COBOL(コボル)言語は、事務処理用として開発された経緯もあり、何万件もある入力データを一括して処理する事を得意としています。その一括処理でよく利用されているのが今回ご紹介する数値操作です。

ここでは、まずCOBOL(コボル)言語の数値操作の基本となる、数値形式のデータを加算処理し、結果を画面表示するという処理の書き方についてご紹介しますので、しっかりその書き方及び使用方法について理解していきましょう。

書き方:

ADD データ項目(数値形式) TO データ項目(数値形式)

使用例:

基礎-数値操作のパターン-使用例

使用例は、WK-NUMという初期値10のデータ項目に対して1を加算し、結果を画面表示するというプログラムです。

この使用例を見ると、「ADD A TO B」という記述は、「TO」の前後の値を加算して、その結果を「TO」の後のデータ項目に代入するという機能を持つ、という事が理解いただけるかと思います。

実行結果:

基礎-数値操作のパターン-実行結果

COBOL(コボル)言語の数値操作のパターン

COBOL(コボル)言語の基本的な数値操作の書き方を理解いただけたところで、次は数値操作のパターンについてご紹介します。

COBOL(コボル)言語の数値操作は主に1.数値の初期化、2.加算、3.減算、4.乗算、5.除算、6.その他の演算の書き方の6つのパターンに分けられます。順にその書き方及び使用方法について見ていきましょう。

書き方1:数値の初期化

INITIALIZE データ項目


使用例1:

基礎-数値操作のパターン-使用例1

使用例は、10という初期値の設定されたWK-NUMというデータ項目の値を初期化して、結果を画面表示するというプログラムです。データ項目を使用した編集処理を行う際は、プログラムの誤動作を防止するために、この使用例のように明示的にデータ項目を初期化しておく事もよく行われます。

実行結果1:

基礎-数値操作のパターン-実行結果1

書き方2:加算

先にご紹介した「ADD文」を参照

書き方3:減算

SUBTRACT データ項目(数値形式) FROM データ項目(数値形式)


使用例3:

基礎-数値操作のパターン-使用例3

使用例は、WK-NUMという初期値10のデータ項目に対して1を減算し、結果を画面表示するというプログラムです。

この使用例を見ると、「SUBTRACT A FROM B」という記述は、「FROM」の後の値から前の値を減算して、その結果を「FROM」の後のデータ項目に代入するという機能を持つ、という事が理解いただけるかと思います。

実行結果3:

基礎-数値操作のパターン-実行結果3

書き方4:乗算

MULTIPLY データ項目(数値形式) BY データ項目(数値形式)


使用例4:

基礎-数値操作のパターン-使用例4

使用例は、WK-NUMという初期値10のデータ項目に対して2を乗算し、結果を画面表示するというプログラムです。

この使用例を見ると、「MULTIPLY A BY B」という記述は、「BY」の前後の値を乗算して、その結果を「BY」の後のデータ項目に代入するという機能を持つ、という事が理解いただけるかと思います。

実行結果4:

基礎-数値操作のパターン-実行結果4

書き方5:除算

DIVIDE データ項目(数値形式) INTO データ項目(数値形式)


使用例5:

基礎-数値操作のパターン-使用例5

使用例は、WK-NUMという初期値10のデータ項目に対して2を除算し、結果を画面表示するというプログラムです。

この使用例を見ると、「DIVIDE A INTO B」という記述は、「INTO」の後の値から前の値を除算して、その結果を「INTO」の後のデータ項目に代入するという機能を持つ、という事が理解いただけるかと思います。

実行結果5:

基礎-数値操作のパターン-実行結果5

書き方6:その他の演算の書き方

COMPUTE 算術式


使用例6:

基礎-数値操作のパターン-使用例6

使用例は、先にご紹介した加算、減算、乗算、除算の使用例を、COMPUTE文を利用した算術式(+、-、*、/)を使って書き直したものになります。算術式で記述ができるため、記述の仕方がわかりやすく、空白で区切って書く事で、一度にいろいろな計算を行う事ができます。

実行結果6:

基礎-数値操作のパターン-実行結果6

COBOL(コボル)言語における数値操作の基本事項や注意事項

  • ADD、SUBTRACT、MULTIPLY、DIVIDE、COMPUTE、ともにROUNDED指定を行うと四捨五入が行われます。
    (例)ADD 1 TO WK-NUM ROUNDED

さらに、ON SIZE ERROR指定を行うと、桁あふれが発生した場合の処理を行う事ができ、NOT ON SIZE ERROR指定を行うと、桁あふれが発生しなかった場合の処理を行う事ができます。ただし、ON SIZE ERROR、NOT ON SIZE ERRORはペアで記述する必要があります。

  • ADD、SUBTRACT、MULTIPLY、DIVIDE、ともにGIVING指定を行う事で演算結果の代入先が指定できます。
    (例)ADD A TO B GIVING C(A+Bの結果をCに代入)
  • DIVIDEは、REMAINDER指定を行う事で、除算後の余りを求める事ができます。
    (例)DIVIDE A INTO B REMAINDER C(B/Aの余りをCに代入)

数値操作のCOBOL(コボル)プログラムの活用法

COBOL(コボル)言語の数値操作の基本的な書き方や使用例について理解いただけたでしょうか?最後に活用法として、数値操作と組み合わせてよく利用される繰り返し処理についてご紹介します。

今までご紹介した書き方のパターンが理解いただけていれば、それ程難しい内容ではないと思います。数値操作は他にも数値同士の比較など様々な処理に応用できますので、いろいろな処理に応用し理解を深めていただければと思います。

サンプルプログラム:

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. NUM_SAMPLE07.
  3. ENVIRONMENT DIVISION.
  4. DATA DIVISION.
  5. WORKING-STORAGE SECTION.
  6. 01 WK-KAISU PIC 99 VALUE 10.
  7. 01 WK-NUM PIC 99 VALUE ZERO.
  8. PROCEDURE DIVISION.
  9. *> 繰り返し処理との組み合わせ
  10. PERFORM UNTIL WK-NUM > WK-KAISU
  11. ADD 1 TO WK-NUM
  12. END-PERFORM.
  13.  
  14. DISPLAY WK-NUM.
  15. STOP RUN.
  16. END PROGRAM NUM_SAMPLE07.

実行結果:

基礎-数値操作のパターン-実行結果

いかがでしたでしょうか?あるデータに対して演算などの数値操作を行う事は、COBOL(コボル)言語の業務プログラムではよく利用されています。特にCOBOL(コボル)言語の演算は、予約語を利用した記述をする必要があり、他のプログラミング言語ではあまり見られない記述方法ではありますが、頻繁に利用される書き方になりますので、是非覚えていただければと思います。

また、今回ご紹介したような基本的な処理は、他の処理と組み合わせて使用する事でプログラミングの幅が広がりますので、いろいろな処理やパターンに応用していただき、プログラミングのスキル向上に繋げていっていただければと思います。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門