カテゴリ: COBOL 更新日: 2025/11/15

COBOLの文字列操作と数値処理を総合的に理解しよう!初心者向けサンプルプログラム付き

文字列・数値処理の総合サンプルプログラム例
文字列・数値処理の総合サンプルプログラム例

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLで文字を扱ったり、数値の計算をしたりするプログラムを作ってみたいです!」

先生

「いいですね!COBOLは文字や数値の処理がとても得意な言語です。今日は、それらを組み合わせたサンプルを一緒に作ってみましょう。」

生徒

「具体的にどんなことをするんですか?」

先生

「たとえば『名前と金額を入力して、合計金額を計算して表示する』というプログラムです。文字列操作と数値演算の両方を使う練習になりますよ!」

1. COBOLで文字列と数値を一緒に扱うには?

1. COBOLで文字列と数値を一緒に扱うには?
1. COBOLで文字列と数値を一緒に扱うには?

COBOL(コボル)では、文字列と数値を別々のデータ型として扱います。文字列はPIC X(ピクチャーエックス)、数値はPIC 9(ピクチャーナイン)で定義します。文字列(アルファベット・数字・記号を含むデータ)数値(計算ができるデータ)をしっかり区別することが、COBOLプログラミングの基本です。

たとえば、名前などのテキスト情報はPIC Xを使い、金額や個数などの数値はPIC 9を使います。


01 USER-NAME      PIC X(20).
01 ITEM-PRICE     PIC 9(5)V99.
01 QUANTITY       PIC 9(3).
01 TOTAL-PRICE    PIC 9(7)V99.

このように変数を定義することで、COBOLは「文字と数字」を明確に区別して処理できます。Vは小数点の位置を表しており、実際の計算では正確な金額を扱えます。

2. 文字列操作の基本

2. 文字列操作の基本
2. 文字列操作の基本

COBOLでは、文字列を結合したり、一部を取り出したりすることができます。たとえば、STRING文を使うと、複数の文字列をつなげて1つの文にすることができます。


STRING "ようこそ、" USER-NAME "さん!" 
    DELIMITED BY SIZE 
    INTO WELCOME-MESSAGE
END-STRING.

この例では、「ようこそ、」と入力された名前、そして「さん!」を組み合わせて、挨拶文を作っています。まるでパズルのピースをつなげるようなイメージです。

DELIMITED BY SIZEという部分は、「文字列の最後まで使う」という意味です。初心者の方でも、この部分を覚えておくと、自然な文章を作るときにとても役立ちます。

3. 数値演算の基本

3. 数値演算の基本
3. 数値演算の基本

次に、COBOLの数値計算について見ていきましょう。たとえば、商品の単価と数量から合計金額を計算する場合、COMPUTE文を使います。これは「計算する」という意味の命令です。


COMPUTE TOTAL-PRICE = ITEM-PRICE * QUANTITY.

とてもシンプルですね。数学の「掛け算」や「足し算」と同じように、+-*/などを使って計算します。COBOLでは小数点を含む計算も可能なので、金額計算にも安心して使えます。

4. 文字列と数値を組み合わせたサンプルプログラム

4. 文字列と数値を組み合わせたサンプルプログラム
4. 文字列と数値を組み合わせたサンプルプログラム

では、これまで学んだ内容を活かして、実際に動くCOBOLプログラムを作ってみましょう。ユーザーの名前、単価、数量を入力して、合計金額を計算し、メッセージとして表示するプログラムです。


       IDENTIFICATION DIVISION.
       PROGRAM-ID. STRING-MATH-SAMPLE.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 USER-NAME       PIC X(20).
       01 ITEM-PRICE      PIC 9(5)V99.
       01 QUANTITY        PIC 9(3).
       01 TOTAL-PRICE     PIC 9(7)V99.
       01 WELCOME-MESSAGE PIC X(50).

       PROCEDURE DIVISION.
           DISPLAY "あなたの名前を入力してください:".
           ACCEPT USER-NAME.
           DISPLAY "商品の単価を入力してください(例:123.45):".
           ACCEPT ITEM-PRICE.
           DISPLAY "購入数量を入力してください:".
           ACCEPT QUANTITY.

           COMPUTE TOTAL-PRICE = ITEM-PRICE * QUANTITY.

           STRING "ようこそ、" USER-NAME "さん!合計金額は "
                  TOTAL-PRICE " 円です。"
                  DELIMITED BY SIZE
                  INTO WELCOME-MESSAGE
           END-STRING.

           DISPLAY WELCOME-MESSAGE.
           STOP RUN.

実行結果例:


あなたの名前を入力してください:
山田太郎
商品の単価を入力してください(例:123.45):
120.50
購入数量を入力してください:
3
ようこそ、山田太郎さん!合計金額は 361.50 円です。

このように、COBOLでは文字列の結合と数値の計算をシンプルに組み合わせることができます。ACCEPTは入力を受け取る命令、DISPLAYは画面に出力する命令です。これらを組み合わせることで、対話的なプログラムを簡単に作成できます。

5. 初心者が気をつけるポイント

5. 初心者が気をつけるポイント
5. 初心者が気をつけるポイント

COBOLの文字列操作や数値演算を行う際に注意したいのは、データ型の違いです。文字型変数に数値を代入したり、数値型に文字を代入しようとすると、エラーになります。たとえば、「123」をPIC X型に入れると文字として扱われるため、計算できません。

また、桁あふれ(けたあふれ)にも注意しましょう。PIC 9(5)に6桁以上の数字を入れるとエラーが出ます。桁数は「この変数にどのくらいの数字を入れるか」という器の大きさを決めているようなものです。

初めのうちは、「名前はX(文字列)」「金額や数量は9(数値)」と覚えておくと混乱しません。

6. さらに理解を深めよう

6. さらに理解を深めよう
6. さらに理解を深めよう

今回紹介したサンプルは、COBOLの文字列操作(STRING)と数値演算(COMPUTE)を組み合わせた基本的な例です。これを応用すれば、請求書作成プログラムや売上集計など、実務的なシステムも作ることができます。

COBOLは銀行や保険などの業務システムで今でも使われています。その理由は、文字と数値を正確に扱えること、そして大量のデータを安定して処理できることです。今回の例を通して、COBOLの堅実で実用的な設計を体感できたのではないでしょうか。

カテゴリの一覧へ
新着記事
New1
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New2
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New3
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New4
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.4
Java&Spring記事人気No4
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.5
Java&Spring記事人気No5
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.8
Java&Spring記事人気No8
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法