Learn COBOL with Real Code Examples
Updated Nov 19, 2025
Code Sample Descriptions
1
COBOL Counter and Theme Toggle
IDENTIFICATION DIVISION.
PROGRAM-ID. CounterProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COUNT PIC 9(4) VALUE 0.
01 IS-DARK PIC X VALUE 'N'.
PROCEDURE DIVISION.
DISPLAY 'Counter: ' COUNT
DISPLAY 'Theme: ' IS-DARK
ADD 1 TO COUNT
DISPLAY 'Counter: ' COUNT
MOVE 'Y' TO IS-DARK
DISPLAY 'Theme: ' IS-DARK
SUBTRACT 1 FROM COUNT
DISPLAY 'Counter: ' COUNT
MOVE 0 TO COUNT
DISPLAY 'Counter: ' COUNT
STOP RUN.
Demonstrates a simple counter with theme toggling using COBOL variables and console output.
2
COBOL Simple Addition
IDENTIFICATION DIVISION.
PROGRAM-ID. AddProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(4) VALUE 5.
01 B PIC 9(4) VALUE 3.
01 SUM PIC 9(4) VALUE 0.
PROCEDURE DIVISION.
ADD A TO B GIVING SUM
DISPLAY 'Sum: ' SUM
STOP RUN.
Adds two numbers and displays the result.
3
COBOL Factorial
IDENTIFICATION DIVISION.
PROGRAM-ID. FactorialProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 N PIC 9(2) VALUE 5.
01 FACT PIC 9(5) VALUE 1.
01 COUNTER PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
PERFORM VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > N
MULTIPLY FACT BY COUNTER GIVING FACT
END-PERFORM
DISPLAY 'Factorial: ' FACT
STOP RUN.
Calculates factorial of 5 using a loop.
4
COBOL Fibonacci Sequence
IDENTIFICATION DIVISION.
PROGRAM-ID. FibonacciProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 N PIC 9(2) VALUE 10.
01 A PIC 9(5) VALUE 0.
01 B PIC 9(5) VALUE 1.
01 TEMP PIC 9(5) VALUE 0.
01 COUNTER PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
DISPLAY A
PERFORM VARYING COUNTER FROM 2 BY 1 UNTIL COUNTER > N
ADD A TO B GIVING TEMP
DISPLAY B
MOVE B TO A
MOVE TEMP TO B
END-PERFORM
STOP RUN.
Generates first 10 Fibonacci numbers.
5
COBOL Array Sum
IDENTIFICATION DIVISION.
PROGRAM-ID. ArraySum.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMBERS.
05 NUM PIC 9(2) OCCURS 5 TIMES VALUE 1 2 3 4 5.
01 SUM PIC 9(3) VALUE 0.
01 INDEX PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
PERFORM VARYING INDEX FROM 1 BY 1 UNTIL INDEX > 5
ADD NUM (INDEX) TO SUM
END-PERFORM
DISPLAY 'Sum: ' SUM
STOP RUN.
Sum elements of an array.
6
COBOL Max of Two Numbers
IDENTIFICATION DIVISION.
PROGRAM-ID. MaxProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(4) VALUE 7.
01 B PIC 9(4) VALUE 10.
01 MAX PIC 9(4) VALUE 0.
PROCEDURE DIVISION.
IF A > B THEN
MOVE A TO MAX
ELSE
MOVE B TO MAX
END-IF
DISPLAY 'Max: ' MAX
STOP RUN.
Finds the maximum of two numbers.
7
COBOL Reverse String
IDENTIFICATION DIVISION.
PROGRAM-ID. ReverseString.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STR PIC X(10) VALUE 'HELLO'.
01 REV PIC X(10).
01 INDEX1 PIC 9(2) VALUE 5.
01 INDEX2 PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
PERFORM VARYING INDEX2 FROM 1 BY 1 UNTIL INDEX2 > 5
MOVE STR (INDEX1:1) TO REV (INDEX2:1)
SUBTRACT 1 FROM INDEX1
END-PERFORM
DISPLAY 'Reversed: ' REV
STOP RUN.
Reverses a string and displays it.
8
COBOL Even Numbers Filter
IDENTIFICATION DIVISION.
PROGRAM-ID. EvenNumbers.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMS.
05 NUM PIC 9(2) OCCURS 10 TIMES VALUE 1 2 3 4 5 6 7 8 9 10.
01 INDEX PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
PERFORM VARYING INDEX FROM 1 BY 1 UNTIL INDEX > 10
IF NUM (INDEX) MOD 2 = 0 THEN
DISPLAY NUM (INDEX)
END-IF
END-PERFORM
STOP RUN.
Displays even numbers from an array.
9
COBOL String Concatenation
IDENTIFICATION DIVISION.
PROGRAM-ID. ConcatStrings.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 STR1 PIC X(5) VALUE 'HELLO'.
01 STR2 PIC X(5) VALUE 'WORLD'.
01 RESULT PIC X(10).
PROCEDURE DIVISION.
STRING STR1 DELIMITED BY SPACE
STR2 DELIMITED BY SPACE
INTO RESULT
END-STRING
DISPLAY 'Concatenated: ' RESULT
STOP RUN.
Concatenates two strings and displays result.