15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

COBOLでFizzBuzz

Posted at

今だからこそCOBOL

何年か前にはDSLが流行り、そしてJVMのデファクトスタンダードなビルドツールGradleではGroovyやKotlinを使うことによって宣言的な記述でビルドルールを記述できます。
つまり世界は宣言的でわかりやすいコードを求めているということです。
そう、もうお分かりですね。宣言的な記述的の本家本元であるCOBOLの時代が来ています!
FPが提唱され、OOPが提唱され、そして時代は流れJavaの登場でようやくOOPが定着し、21世紀に入りFPが浸透してきました。
最先端を行くコンピュータ業界は常に温故知新な世界であります。
一周回ってCOBOLを真剣に学ぶ時代の到来であります。

インストール

apt-get install open-cobol

コード

fizzbuzz.cob
000001 IDENTIFICATION                   DIVISION.
000002 PROGRAM-ID.                      HELLO.
000003 AUTHOR.                          koji.
000004 DATA                             DIVISION.
000005 WORKING-STORAGE                  SECTION.
000006 01 CNT PIC 9(3)                  VALUE 0.
000007 01 TXT1 PIC X(11)                VALUE "Hello COBOL".
000008 01 TXT2 PIC N(11)                VALUE "COBOLでFizzBuzz".
000009 01 FIZZ PIC 9(01)                VALUE 0.
000010 01 BUZZ PIC 9(01)                VALUE 0.
000011 PROCEDURE                        DIVISION.
000012     DISPLAY TXT1
000013     DISPLAY TXT2
000014     PERFORM 100 TIMES
000015         ADD 1 TO CNT
000016         COMPUTE FIZZ = FUNCTION MOD(CNT 3)
000017         COMPUTE BUZZ = FUNCTION MOD(CNT 5)
000018         IF FIZZ = 0 AND BUZZ = 0 THEN
000019             DISPLAY "FIZZ BUZZ"
000020         ELSE IF FIZZ = 0 THEN
000021             DISPLAY "FIZZ"
000022         ELSE IF BUZZ = 0 THEN
000023             DISPLAY "BUZZ"
000024         ELSE
000025             DISPLAY CNT
000026         END-IF
000027     END-PERFORM.
000028 STOP RUN.

コンパイル

cobc -x fizzbuzz.cob

実行

./fizzbuzz

15
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?