COBOLの文字列操作と数値処理を総合的に理解しよう!初心者向けサンプルプログラム付き
生徒
「先生、COBOLで文字を扱ったり、数値の計算をしたりするプログラムを作ってみたいです!」
先生
「いいですね!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. 文字列操作の基本
COBOLでは、文字列を結合したり、一部を取り出したりすることができます。たとえば、STRING文を使うと、複数の文字列をつなげて1つの文にすることができます。
STRING "ようこそ、" USER-NAME "さん!"
DELIMITED BY SIZE
INTO WELCOME-MESSAGE
END-STRING.
この例では、「ようこそ、」と入力された名前、そして「さん!」を組み合わせて、挨拶文を作っています。まるでパズルのピースをつなげるようなイメージです。
DELIMITED BY SIZEという部分は、「文字列の最後まで使う」という意味です。初心者の方でも、この部分を覚えておくと、自然な文章を作るときにとても役立ちます。
3. 数値演算の基本
次に、COBOLの数値計算について見ていきましょう。たとえば、商品の単価と数量から合計金額を計算する場合、COMPUTE文を使います。これは「計算する」という意味の命令です。
COMPUTE TOTAL-PRICE = ITEM-PRICE * QUANTITY.
とてもシンプルですね。数学の「掛け算」や「足し算」と同じように、+、-、*、/などを使って計算します。COBOLでは小数点を含む計算も可能なので、金額計算にも安心して使えます。
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. 初心者が気をつけるポイント
COBOLの文字列操作や数値演算を行う際に注意したいのは、データ型の違いです。文字型変数に数値を代入したり、数値型に文字を代入しようとすると、エラーになります。たとえば、「123」をPIC X型に入れると文字として扱われるため、計算できません。
また、桁あふれ(けたあふれ)にも注意しましょう。PIC 9(5)に6桁以上の数字を入れるとエラーが出ます。桁数は「この変数にどのくらいの数字を入れるか」という器の大きさを決めているようなものです。
初めのうちは、「名前はX(文字列)」「金額や数量は9(数値)」と覚えておくと混乱しません。
6. さらに理解を深めよう
今回紹介したサンプルは、COBOLの文字列操作(STRING)と数値演算(COMPUTE)を組み合わせた基本的な例です。これを応用すれば、請求書作成プログラムや売上集計など、実務的なシステムも作ることができます。
COBOLは銀行や保険などの業務システムで今でも使われています。その理由は、文字と数値を正確に扱えること、そして大量のデータを安定して処理できることです。今回の例を通して、COBOLの堅実で実用的な設計を体感できたのではないでしょうか。