コード
久々にCOBOLを書いてみました。やっぱり冗長ですね
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CNT PIC 9(3) VALUE 0.
01 DUMMY PIC 9(01) VALUE 0.
01 AMARI05 PIC 9(03) VALUE 0.
01 AMARI03 PIC 9(03) VALUE 0.
PROCEDURE DIVISION.
PERFORM 100 TIMES
ADD 1 TO CNT
DIVIDE 5 INTO CNT GIVING DUMMY REMAINDER AMARI05
DIVIDE 3 INTO CNT GIVING DUMMY REMAINDER AMARI03
EVALUATE TRUE
WHEN AMARI05 = 0 AND AMARI03= 0
DISPLAY "FIZZ BUZZ"
WHEN AMARI03 = 0
DISPLAY "FIZZ"
WHEN AMARI05 = 0
DISPLAY "BUZZ"
WHEN OTHER
DISPLAY CNT
END-EVALUATE
END-PERFORM.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CNT PIC 9(3) VALUE 0.
01 FIZZ PIC 9(01) VALUE 0.
01 BUZZ PIC 9(01) VALUE 0.
PROCEDURE DIVISION.
PERFORM 100 TIMES
ADD 1 TO CNT
COMPUTE FIZZ = FUNCTION MOD(CNT 3)
COMPUTE BUZZ = FUNCTION MOD(CNT 5)
EVALUATE TRUE
WHEN FIZZ = 0 AND BUZZ = 0
DISPLAY "FIZZ BUZZ"
WHEN FIZZ = 0
DISPLAY "FIZZ"
WHEN BUZZ = 0
DISPLAY "BUZZ"
WHEN OTHER
DISPLAY CNT
END-EVALUATE
END-PERFORM.