COBOL入門 Mission3-3
処 理 内 容 |
PROGRAM-ID |
難易度 |
言語 |
偶数行・奇数行を表示する |
LST003 |
1 |
COBOL |
|
1:処理図
|
2:処理概要
キーボードからパラメータ(1・2・9)を入力しプログラムの奇数行又は偶数行を表示する 繰返し指定出来るようにする
入力するパラメータ
1・・・奇数行を表示する
2・・・偶数行を表示する
3・・・プログラムを表示する
以外 "type-in err" を表示し再度タイプイン
※図は手違いでLST024になってます
|
|
3:ファイル名称 |
I-O |
外部ファイル名 |
編成 |
KP/KL |
RL/BF |
access |
(1)ソースプログラム |
in |
c:\cobol\lst003.cbl |
seq |
/ |
72/1 |
順 |
|
4:その他
★多分岐命令 [ EVALUATE ]
EVALUATE 比較する項目名
WHEN 条件1
条件1を肯定した場合の命令
WHEN 条件2
条件2を肯定した場合の命令
WHEN 条件3
条件3を肯定した場合の命令
:
:
WHEN OTHER
全ての条件に当てはまらなかった場合の命令
END-EVALUATE
|
|
IDENTIFICATION DIVISION.
PROGRAM-ID. LST003.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT F1 ASSIGN TO "c:\cobol.lst003.cbl" STATUS FST
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD F1.
01 F1R PIC X(72).
WORKING-STORAGE SECTION.
01 FST PIC X(02).
01 SW PIC 9(01) VALUE 1.
PROCEDURE DIVISION.
PERFORM UNTIL sw = 9
display "奇数=1 偶数=2 終了=9 type-in"
accept sw
* (分岐) (基本項目名)
evaluate sw
when 1 perform a-rtn thru a-ex
when 2 perform a-rtn thru a-ex
when 9 continue
when other display "!!! type-in irregal !!!"
end-evaluate
end-perform
display "!!! lst003-ended !!!"
stop-run.
a-rtn. open input f1
perform until fst not = "00"
read f1
end continue
not end if sw = 1
then move 2 to sw display f1r
else move 1 to sw
end-if
end-read
end-perform
close f1.
a-ex. exit.
「evaluate」は、他言語でお馴染みの「case」や「elif」と同じ命令です。同じ項目(もしくは真偽)に対して複数の条件分岐ができます。これはCOBOLに限らずプログラム言語では頻繁に利用される命令ですね。覚えましょう。