COBOL

  • ディビジョン
ディビジョンが4つある。
   1. IDENTIFICATION DIVISION. (見出し部)
         	プログラムの名前などを記述します
   2. ENVIRONMENT DIVISION. (環境部)
          ファイルを利用する場合など、実行環境を記述します
   3. DATA DIVISION. (データ部)
          プログラムで使用するデータ項目について記述します
   4. PROCEDURE DIVISION. (手続き部)
          実際のプログラム(命令語)を記述します
順番もこの通りに書かなくてはならない。
  • 表示
DISPLAY "~~~~"
変数をはさむ場合は、
DISPLAY 変数 "文字列" 変数 "文字列"
というように、空白で区切って並べる。
  • 繰り返し(for に相当)
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
END-PERFORM
※ I をデータディビジョンで宣言しておく必要あり。
01 I PIC 9.
   PERFORM 1000 TIMES
       DISPLAY  "*** HIYOKO GUMI ***"
   END-PERFORM

【2010.01.30のボクが注釈】ん!?ひよこ組?こいつはどこかからの引用だな・・・ぐぐぐぐ(ぐぐる音)。
引用元は「サルでもわかるCOBOL入門」(http://www16.plala.or.jp/hiyokogumi/top.html)さんです。
ちなみにボクがサンプルプログラムを書くと、大体表示文言が「Hello, World!」かその派生版になるか、
「もけもけ」とか意味のない文字列になります。
  • プログラムの終了
STOP RUN.
  • ラベル
LABEL.
  • ラベルへジャンプ
GO TO LABEL.
  • 条件分岐
IF PASS = "TEST" THEN
END-IF
  • 変数宣言
整数  :01 I PIC 9.		←桁数の分だけ9を並べる。左のように「9.」とすると、加算時に9の次が0になるので注意。
整数配列:01 TBL.
		02 N PIC 9(2) OCCURS 3.	
			← OCCURS に続く数字が、配列の要素数。
			01 N PIC 9(2) OCCURS 3. と宣言すると、「テーブルは親を持たなくてはなりません。」
			というエラーになる。先頭の「01」「02」は、階層を意味するらしい。
			インデントは無くても大丈夫。あった方が見やすいだろうけど・・・
			()内の数字が桁数。
			桁数を「3」とした上で、例えば35を代入すると、表示時は「035」と表示される。

			実際に使用する時、配列の添え字も()で表現するので注意。
文字列 :01 PASS PIC X(10).
  • 代入
MOVE 数字 TO 変数
※ 数値も文字列もOK。
  • 計算
COMPUTE 変数 = 計算式
  • コメント
行の先頭に「*」
※ 先頭から1桁でもずれると、エラーになるので注意。
  • 四則演算
+,-,*,/
例:COMPUTE N(3) = N(1) - N(2)
※スペースを空けること。
	E-N などというように、ハイフンを含んだ変数名も使えるため。
  • 文字列の入力を受け付ける
ACCEPT 変数名
※変数は文字列型
  • ENVIRONMENT DIVISION.
ENVIRONMENT DIVISION.には、以下のセクションが設けられる。
・INPUT-OUTPUT SECTION.
  • DATA DIVISION.
DATA DIVISION.には、以下のセクションが設けられる。
・FILE SECTION.
・WORKING-STORAGE SECTION.
WORKING-STORAGE SECTION.
01 W-REC.
	02 W-KOKU	PIC 9(5).
	02 W-SUU	PIC 9(5).
	02 W-EI		PIC 9(5).
01 MEISAI.
	02				PIC X(6) VALUE "平均: ".
	02 M-KOKU		PIC ZZ9.9.
	02				PIC X(2) VALUE SPACE.
	02 M-SUU		PIC ZZ9.9.
	02				PIC X(2) VALUE SPACE.
	02 M-EI			PIC ZZ9.9.
  • ファイル読み込み準備
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
	SELECT IN-FILE ASSIGN TO "SAMPLE_33.DAT".
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-REC.
	02 IN-GAKUBAN	PIC 9(5).
	02 IN-NAME		PIC X(10).
	02 IN-KOKU		PIC 9(3).
	02 IN-SUU		PIC 9(3).
	02 IN-EI		PIC 9(3).
  • ファイル読み込み
PERFORM UNTIL END-FLG = 1
	READ IN-FILE
		AT END
			MOVE 1 TO END-FLG
		NOT AT END
			COMPUTE W-KOKU = W-KOKU + IN-KOKU
			COMPUTE W-SUU = W-SUU + IN-SUU
			COMPUTE W-EI = W-EI + IN-EI
			COMPUTE CNT = CNT + 1
	END-READ
END-PERFORM
















最終更新:2010年01月30日 12:28