IDENTIFICATION DIVISION.

PROGRAM-ID. SAMPLE.
AUTHOR. ALJORIE STALLINGS.
INSTALLATION. ABC UNIVERSITY
DATE-WRITTEN. MAY 1983
DATE-COMPILED. MAY 9, 1983
SECURITY. THERE ARE NO SECURITY CONSIDERATIONS FOR QUARTER.
*
*OVERVIEW OF PROGRAM QUARTER--
*
*    QUARTER READS A FILE CONTAINING SALESPERSON MONTHLY     
*    SALES FOR THE 3 MONTHS IN A QUARTER ALONG WITH THE 
*    SALESPERSON'S NAME AND QUARTERLY QUOTA SALES AMOUNT.
*    IT PRINTS A REPORT SHOWING SALESPERSON:
*
*        NAME    QUARTERLY SALES          QUOTA
*       
*        JONES     $42,000.98            $40,000.00
*        SMITH     $59,000.67            $60,000.00
*        YOST      $47,893.00            $45,000.00
*

ENVIRONMENT DIVISION

CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.

INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT SALES-FILE         ASSIGN TO SALES.
    SELECT QUARTERLY-REPORT   ASSIGN TO SALESRPT.
    
DATE DIVISION.

FILE DIVISION.

FD SALES-FILE
   LABEL RECORDS ARE STANDARD
   RECORD CONTAINS 80 CHARACTERS
   
1 SALES-RECORD.
  05 SALES-RECORD-NAME               PIC X(15).
  05 SALES-RECORD-MONTH-1-SALES      PIC S9(4)V99.
  05 SALES-RECORD-MONTH-2-SALES      PIC S9(4)V99.
  05 SALES-RECORD-MONTH-3-SALES      PIC S9(4)V99.
  05 SALES-RECORD-QUOTA              PIC S9(5)V99.
  05 FILLER                          PIC X(40).

FD QUARTERLY-REPORT
   LABEL RECORDS ARE OMITTED
   RECORD CONTAINS 132 CHARACTERS
   
01 QUARTERLY-REPORT-LINE             PIC X(132).

WORKING-STORAGE SECTION.

01 SWITCHES-AND-TOTALS               
   05 SALES-FILE-END                 PIC X.
   05 QUARTERLY-TOTAL                PIC S9(5)V99    COMP-3.
01 WORKING-REPORT-LINE.
   05 WORKING-NAME                   PIC X(15).
   05 FILLER                         PIC X(5)      VALUE SPACES.
   05 WORKING-TOTAL                  PIC $$$, $$$.99.
   05 FILLER                         PIC X(5)      VALUE SPACES.
   05 WORKING-QUOTA                  PIC $$$, $$$.99.
   05 FILLER                         PIC X(87)     VALUE SPACES.
   
PROCEDURE DIVISION.
   
010-EXECUTIVE-PARA.
    PERFORM 020-INITIALIZE-AND-SET-UP
    PERFORM 040-PRINT-REPORT-LINES
        UNTIL SALES-FILE-END = "T"
    PERFORM 050-TERMINATION-AND-WIND-UP
    STOP RUN.
      

020-INITIALIZE-AND-SET-UP.
    OPEN  INPUT  SALES-FILE-END 
          OUTPUT QUARTERLY-REPORT-LINE
    MOVE "F" TO SALES-FILED SALES-FILE-END
    PERFORM 030-READ-SALES-FILE
    .

030-READ-SALES-FILE.
    READ SALES-FILE
        AT END
            MOVE "T" TO SALES-FILE-END.
            
            
040-PRINT-REPORT-LINES.
    MOVE SALES-RECORD-NAME TO WORKING-NAME
    COMPUTE QUARTERLY-TOTAL =    SALES-RECORD-MONTH-1-SALES
                               + SALES-RECORD-MONTH-2-SALES
                               + SALES-RECORD-MONTH-3-SALES
    MOVE QUARTERLY-TOTAL TO WORKING-TOTAL
    MOVE SALES-RECORD-QUOTA TO WORKING-QUOTA
    WRITE QUARTERLY-REPORT-LINE
        FROM WORKING-REPORT-LINE
    PERFORM 030-READ-SALES-FILE
    .
050-TERMINATION-AND-WIND-UP
     CLOSE SALES-FILE
           QUARTERLY-REPORT-LINE
     . 
           
            

COBOL online compiler

Write, Run & Share COBOL code online using OneCompiler's COBOL online compiler for free. It’s a reliable and accessible playground to practice and run COBOL code with ease. The compiler supports classic COBOL syntax and is great for learning, teaching, and experimenting with business logic programs.

About COBOL

COBOL (Common Business-Oriented Language) is a high-level programming language developed in the 1950s. It is primarily used in business, finance, and administrative systems for companies and governments. COBOL is known for its English-like syntax and is still widely used in legacy enterprise systems.

Sample Code

The following is a simple COBOL program that prints a greeting:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
    DISPLAY "Hello, OneCompiler!".
    STOP RUN.

Taking inputs

In COBOL, input is typically handled using the ACCEPT keyword. Here’s an example that takes user input and prints it back.

IDENTIFICATION DIVISION.
PROGRAM-ID. GREET.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC A(30).

PROCEDURE DIVISION.
    DISPLAY "Enter your name: ".
    ACCEPT USER-NAME.
    DISPLAY "Hello, " USER-NAME "!".
    STOP RUN.

Syntax Basics

Program Structure

COBOL programs are divided into four divisions:

  • IDENTIFICATION DIVISION: Program metadata
  • ENVIRONMENT DIVISION: Machine/environment details (optional)
  • DATA DIVISION: Variable declarations
  • PROCEDURE DIVISION: Actual program logic

Variables

Variables are declared in the DATA DIVISION using PIC clauses.

01 AGE        PIC 99.
01 NAME       PIC A(20).
01 SALARY     PIC 9(5)V99.

Displaying and Accepting Data

DISPLAY "Welcome to COBOL!".
ACCEPT USER-INPUT.

Conditional Statements

IF AGE >= 18
    DISPLAY "Eligible to vote."
ELSE
    DISPLAY "Not eligible."
END-IF.

Loops (PERFORM)

PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
    DISPLAY "Count: " I
END-PERFORM.

This guide provides a quick reference to COBOL programming syntax and features. Start coding in COBOL using OneCompiler’s COBOL online compiler today!