前回:COBOL記載方法まとめ 【初心者編】2
https://qiita.com/nano357/items/b5b4a030424fcaf9a278
④COBOLの転記
MOVEによる転記
**************************************************************************
03 END-FLG PIC X(3).
*文字定数転記処理
MOVE "END" TO END-FLG.
文字定数は "" (二重引用符) で括って記述
**************************************************************************
03 NUM8 PIC S9(3).
*数字定数転記処理
MOVE -987 TO NUM8.
数字定数は "" (二重引用符) で括らないでそのまま記述
**************************************************************************
03 CHRA1 PIC N(3).
*日本語定数転記処理
MOVE N"文字一" TO CHRA1.
日本語定数は、定数の前に N をつけて "" (二重引用符) で括って記述
VALUE句による初期値の転記
**************************************************************************
*文字定数初期値転記処理
03 ABC PIC X(3) VALUE "ABC".
**************************************************************************
*数字定数初期値転記処理
03 NUM10 PIC S9(3) VALUE -123.
**************************************************************************
*文字定数初期値転記処理
03 CHRA2 PIC N(3) VALUE N"文字二".
定数の転記
**************************************************************************
*スペースの定数を転記する処理
03 DEF PIC X(3) VALUE SPACE. ・・・ " "と同じ
**************************************************************************
*ZERO(ゼロ)の定数を転記する処理
03 NUM0 PIC 9(3) VALUE ZERO. ・・・ 000 と同じ
03 PIC X(3) VALUE ZERO. ・・・ "000"と同じ
**************************************************************************
*文字の照合順序の最も高い文字の定数を転記する処理
03 NOW-FLG PIC X(2) VALUE HIGH-VALUE.
・・・表示上はZZ だが、16進数でいうところの"FFFF"を持つ
**************************************************************************
*文字の照合順序の最も低い文字の定数を転記する処理
03 HIT-FLG PIC X(2) VALUE LOW-VALUE.
・・・表示上はAA だが、16進数でいうところの"0000"を持つ
INITIALIZE文による初期化
**************************************************************************
01 WK-AREA1.
03 CHER111 PIC X(2).
03 NUM111 PIC S(2).
*集団項目の初期化処理
INITIALIZE WK-AREA1.
・・・CHER111 には " " (半角スペース) が設定される
・・・NUM111 には 00 (ゼロ) が設定される
**************************************************************************
01 WK-AREA2.
03 CHER112 PIC X(3) VALUE "ABC".
03 NUM112 PIC S9(3) VALUE -123.
*初期化処理は、初期値とは異なる。
INITIALIZE WK-AREA2.
・・・CHER112 には " " (半角スペース) が設定される
・・・NUM112 には +000 (ゼロ) が設定される
**************************************************************************
01 WK-AREA3.
03 CHER113 PIC N(3) VALUE N"文字三".
03 NUM113 PIC S9(3).
*初期化処理は、初期値とは異なる。
INITIALIZE CHER113.
・・・CHER113 には " " (全角スペース) が設定される
部分参照による転記
**************************************************************************
03 NUM84 PIC 9(8) VALUE 12345678.
03 NUM44 PIC 9(4).
*DISPLAY分による画面出力
DISPLAY NUM84.
・・・実行した際に、画面に 12345678 が出力される
*部分参照の画面出力 3桁目から4文字分
DISPLAY NUM84(3:4).
・・・実行した際に、画面に 3456 が出力される
*部分参照による転記処理
MOVE NUM84(3:4) TO NUM44.
参考文献
COBOL関連情報サイト様
http://www.kitagawa-hanga.com/se/index.html
https://www.shakaijintanaka.com/comp-cobol/
謝辞:「いかなる組織体も、自由な教育用説明書その他の目的でCOBOL 報告書とその仕様との一部または全部を複製し、また報告書の着想を利用してかまわない。 ただし、その文書の序文の一部にこの部分を掲載されたい。
書評などで短い文章を引用するときは出所についての謝辞にCOBOLの名称をあげれば全文をかかげる必要はない。
COBOLは産業界の言語であって、いかなる会社、会社団体、組織、組織団体の所有物ではない。各寄与者、COBOL委員会とも、 プログラミングシステムと言語の正確性や機能について、いかなる保証も与えない。またこれに関する事項についていかなる責任も負わない。
COBOL 保全の手続きははっきりしている。変更を提案する手続きについての照会はデータ組織言語会議の理事会にあてられたい。
ここで利用した以下の資料すなわち、
FLOW-MATIC(スペリーランド社の商標)
Programming for UNIVAC(R) Ⅰ and Ⅱ
Data Automation Systems
スペリーランド社、1958年,1959年版権;
IBM Commercial Translator
No.F28-8013
IBM社、1959年版権;
FACT
DSI27 A 5260-2760
ミネアポリス・ハネウエル社、1960年版権;
この著者、版権者はCOBOL 仕様書に一部または全部を利用することを許可した。このことはプログラミング説明書や類似の出版物にCOBOL 仕様書を複製、利用する場合にも適用される。」
ここで、本解説書およびCOBOL 処理プログラムの作成者とそれの使用者は、CODASYL COBOL委員会と各寄与者の努力と成果を高く評価するとともに感謝の意を表すものであります。