第 1 章 1 3 使用できる文字 COBOL プログラムに使用できる文字 ( COBOL 文字集合 ) は , 次の通りです。 意味 可 COBOL 文字集合 文字 9 数字 Z 英大文字 z 英小文字 ( 注 ) 空白 正号 負号またはハイフン 星印 斜線 等号 通貨記号 コンマまたは小数点 ・ - セミコロン コロン ( 注 ) 終止符または小数点 引用符 左括弧 右括弧 より大きい記号 より小さい記号 注 : 旧 JIS COBOL(JIS C 6250 ー 1980 以 前の CO BO L ) て、は使用て、きません。 1 CQ 0
第 3 章 5 まとめ ①文字列 文字列 " ( 1 ) 文字定数 3 五 1 文法ノート ②符号は , 左端に指定します。省略すると正のデータとみなされます。 ① 0 ~ 9 の数字 , 十一の符号 , 小数点で指定します。 ( 2 ) 数字定数 注 : 旧 JIS COBOL では 120 文字以内です。 ③文字列の長さは , 160 文字以内です。 ②引用符で囲んで指定します。 ます。 引用符を除いた英字 , 数字などシステムで使用できる文字を指定し タの項類の関係は次のように決まっています。 特定の文字や数値を表わすものを表意定数といいます。表意定数とデー ( 3 ) 表意定数 ④整数部 , 小数部を合わせて 18 桁以内で指定します。 ③小数点は , 右端以外ならどこでも構いません。
第 5 章 5 考え方 例題のように計算機で処理したデータを印字するためには , ラインプリンタ 装置を使用します。通常 , ラインプリンタの用紙には , 1 ページに 66 行 , 1 行 に 132 文字印字することができます。 ラインプリンタ用紙 ラインプリンタ 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 スプ こシン目 印字例でわかるように , 印字されたものは人間の目で見やすいものでなけれ はなりません。そのためには , 各ページの先頭には , 大見出し , 小見出しを付 けたり , 数字には , 3 桁ごとにカンマを付けたりします。さらに 1 ページに 納まるように印字する行数 ( 件数 ) を決め , 指定した行数に達したら , 次のペー ジに印字する ( 改頁 ) ようにします。
124 •VALCJE 文字定数の割り当て こまテスト 29 X P I C X ( 3 ) VALUE ” COBOL ” . X の内客は ? こまテスト 30 次の見出しを確保する記 述は ? ← 10 →コマメテスト 第 5 章 出力領域の先頭の 1 バイトの制御文字は , 印字されません。 出力領域は , この先頭の制御文字の 1 バイトも含めて確保しますので , 132 十 1 = 133 バイトとなります。 また , ラインプリンタの SELECT の指定は次のようになります。 SELECT OUTFILE ASSIGN TO PRINTER. ASSIGN TO のうしろに PRINTER と指定します。 5 2 大見出しおよび小見出しの確保 大見出しおよび小見出しはあらかじめ制御文字 , 項目間の空白を指定して確 保しておきます。さらに , 見出し文字などは初期値として定数で割り当ててお きます。 定数を初期値として割り当てるには , WORKING-STORAGE SECTION 中で VALUE で指定します。 VALUE により割り当てられる定数は , MOVE ( 1 ) 文字定数の割り当て 文のときと同様となります。 V A L U E P I c X ( 7 ) B 文字定数は , 左端から順に割り当てられ , 余った部分には空白が割り当てら " I T E C " 0000 ロロロ A P I C X ( 7 ) VA L U E 文字定数は , 英数字項目に割り当てられます。 < 例 2 > れます。 < 例 1 > にすることができます。 1 桁分の空白を指定することにより全体を空白 が割り当てられます。つまり , 指定した 1 桁分の空白は , 左端の 1 桁に割り当てられ , 余った部分には空白
第 1 章 1 3 コーティングの基礎知識 1.3.1 文字の書き方 コーディング作業において使用できる文字は , それぞれのプログラムに に 1 ロロ、一 よって決まっています。一般には , 英文字 , 数字 , カナ文字 , 特殊文字ですが , 最近は漢字が使用できる言語も出ています。プログラマがプログラムをコー ディングした後 , コンピュータへの入力をプログラマ自身が行なえば問題ない のですが , キーパンチャに依頼する場合が多くあります。したがって , 他の人 が判別できるようにコーディングしておかなくてはなりません。 文字には , 書き方によって違う文字に誤読されやすいものがあります。その ためコーディングにおける使用文字には一定の約束を設定しておくことが必要 です。 とくに誤りやすい文字には , 次のようなものがあります。 < 記入法 > < 文字 > 0 数字のゼロ 英字のオー 0 または 英字のディ 1 数字のイチ 1 英字のアイ I んまたは J 英字のジェイ 斜線 カナの工 、工 ノ カナのノ ノ 0 0
印字処理 日 B 000 こまテスト 33 MOVE 123 TO A を 実行したとき , A が 00123 となる編集形式は ? △ ( 2 ) 編集文字 . Z 数値データの先頭の不要なゼロを印字したくないときに指定します。編集文 字 Z には , 数字 1 桁が入ります。 < 例 1 > s 9 ( 3 ) . X P I C P I C Y X TO Y MO V E つな↓一つ亡・ 0 ↓ - △ S 9 ( 3 ) . P I C P I C X < 例 2 > Y X TO Y MO V E 十 0 ↓・ 0 一↓ - △ こまテスト 34 MOVE 123 TO B を データがゼロのときは , すべて空白となります。データがゼロのときに最後 を実行したとき , B が 」 23 となる編集形式は ? のゼロを印字したいときには , PIC ZZ9 と指定します。
126 第 5 章 大見出しおよび小見出しに初期値を割り当てるとき , あとで使用しない項目 にはとくにデータ名を付けなくても構いません。このように後で参照しない項 目に付けるために , FILLER という予約語があります。 < 例 > 例題の大見出しの確保 01 W-OOMIDASHI. 0 2 F I L L E R 02 FILLER 02 WO-YY 02 FILLER 02 WO-MM 0 2 F I L L E R 02 WO-DD 02 FILLER PIC X ( 21 ) VALUE SPACE. PIC X ( 50 ) VALUE ” * * * サ、、イコリョウリスト P I C 9 9. PIC X(I) VALUE " / ". P I C 9 9. PIC X(I) VALUE " / ". PIC 99. PIC X ( 54 ) VALUE SPACE. さらに , FILLER を省略して次のように記述することもできます。 01 W-OOMIDASHI . PIC X ( 21 ) VALUE SPACE. PIC X ( 50 ) VALUE " * * * ザ、イコリョウリスト * * * ” PIC 99. X(I) VALUE " / ". PIC P I C 99. X(I) VALUE " / ". P I C P I C 99. X ( 54 ) VALUE SPACE. P I C ワしワしワワ廴ワし 5 3 編集 編集とは , 数値データを見やすい状態で印字することをいいます。たとえば , 3 桁ごとにカンマを付けたり , 通貨記号 ( \ ) を付けたりする処理のことです。 編集は , 送り側の数字項目のデータを , 編集形式の指定してある受取側のデー タに移動するときに行なわれます。 ( 1 ) 編集文字 . 9 数値データをそのまま印字するときに指定します。 編集文字 9 には , 数字 1 桁が入ります。 P I C S 9 ( 3 ) . < 例 > X P I C Y 9 9 9 . 編集 編集形式 MO V E X T 0
構造化プログラミング 【前処理のサプルーチン】 て確保します。 の状態を区別できればよいことになります。こでは , 1 桁の英数字項目とし 工ンドフラグは , ファイルが終了したかどうかを判断します。つまり , 2 つ ③ ④ ⑤ 最初に , 工ンドフラグにファイルが終了していないときの値をセットし ます。 1 件目のレコードを入力します。 入力ファイルのデータがなくなったときには , 工ンドフラグに終了した ときの値をセットします。 【主処理のサプルーチン】 ⑥出力ファイルに出力する処理を行ないます。 ⑦ 2 件目以降のレコードを入力します。 ⑧⑤の処理と同しです。 3.2 』定数 プログラムの中で値を変更できるものを変数といい , 値を変更できないもの を定数といいます。変数に定数をセットするときには , 変数と定数の項類を合 わせなければなりません。英数字項目に定数をセットするときには , 文字定数 で指定します。 文字列 " 文字列は , 引用符で囲んで指定します。文字列には , 引用符を除いた英字 , 数字などシステムで使用できるすべての文字を指定することができます。 < 例 > W ー FLAG に文字列の 0 をセットします。 こまテスト 20 工ンドフラグの役割とは 何てすか ? 変数 定数 こまテスト 21 A に文字列のぼ EC とセ ットするための文はどう 記述しますか ? T 0 M 0 V E こまめテスト解答 20. 構造化フログラミングをするために チェックするためです。 21 . MOVE "ITEC" TO A W ー F L A G 入力ファイルが終了したかどうかを
印字処理 【印字例】 大見出し 小見出し サ・イコリョウリスト・◆・ 10 , 000 90 , 000 \ 12.000 10 , 000 50 , 000 520.000 \ 12. 500 50.000 \ 15.000 20 , 000 80. 000 \ 2 00 200 , 000 \ 3.000 \ 5.000 \ 20.000 \ 12 , 000 5.2 コ ショウヒン上ト・ MA001 MA002 MA003 BBBOOI BBB002 CCCOOI DDDOOI DDD002 DDD003 EEEOOI EEE002 \ 5.000 \ 6. 300 \ 800 サ・イコリョウ 1.000.000 1 , 000.000 28.000 10 , 000 500 1. 500 250 900 1 , 000 ニウウコリョウ 90. 000 28. 000 10. 000 0 50 , 000 0 0 0 0 89 / 07 / 20 シ野コリョウ 0 0 0 7 , 000 0 6 , 000 ラインプリンタファイルの レコード記述 どの制御を行なうための制御文字の分も一緒に確保します。制御文字としては , ラインプリンタファイルのレコード記述では , ページ替えあるいは行送りな 1 3 2 バイト 制御文字 出力領域 出力領域の先頭の 1 バイトが使用されます。 制御文字
比較処理 ( 2 ) 比較演算子 比較演算子には , 次のようなものがあります。 比較演算子 大きい 小さい 等しい 大きくない 小さくない 等しくない こまテスト 22 比較演算子の前後には 必す 1 つ以上の空白を A は B より大きくないと いう条件はどう記述しま あけます すか ? 4 2 比較の方法 英数字項目と数字項目では , データの比較のされ方が異なります。英数字項 目間の比較は文字比較 , 数字項目間の比較は代数比較で行なわれます。 ( 1 ) 文字比較 文字比較は , EBCDIC コード表の順序に従って行なわれます。比較するとき → E B C D IC コード表 ( 注 ) 使用するコンピュータによ は , 左端から順に行ないます。 っては、 ASCII コードなど、 別のコード体系の場合もあ ります。 文字比較 代数比較 EBCD ℃コード表 上 4 ビッ ト 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 イ ウ ツ ホ カ ナ ム メ ク ス ケ 不 ヤ コ ノ コ - レ ロ ヨ ワ シ・ ン ノ、 フ リ ス ヒ セ フ ノレ 0- 1 っっ・ 4 【 0 ー 8 空臼 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ( 注 1 ) ロは各国て、独自に定める。 G 主 2 ) カナ文字は日本固有のものて、ある。 4 ビ ツ ト 0 こまテスト 23 英数字項目同士の比較を 何といいますか ? 十