Cobol - Day 01
Cobol - Day 01
o COBOL – 68
o COBOL – 74
o COBOL – 85
o COBOL – 2003
o Enterprise COBOL
FUTURE OF COBOL
INTRINSIC INTRINSIC
FUNCTIONS, FUNCTIONS,
SUPPORT FOR SUPPORT FOR
LANGUAGE LANGUAGE
ENVIRONMENT ENVIRONMENT
o DIVISION
o SECTION
o PARAGRAPH
o SENTENCE
o STATEMENT
o WORDS
o CHARACTERS
COBOL words are two categories, reserved words
and user defined words
Rows
2
1. Sequence Number Area
2. Indicator Area
3. Area ‘A’ or Margin ‘A’
4. Area ‘B’ or Margin ‘B’
Indicator Area Characters
1. * (Asterisk) - Comment
2. / (Slash) - Comment + page feed
3. - (Hyphen) - String Continuation
Margin A is to be used for writing
o DIVISION NAMES
o SECTION NAMES
o PARAGRAPH NAMES
o 01 77 LEVEL ENTRIES
o FD ENTRIES
File declarations,
descriptions,
temporary variables,
processing logic,
communication with other programs etc are handled by
various DIVISONS/SECTIONS of a COBOL program
Four Divisions of COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. FIRST001.
AUTHOR. SRG.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM1 PIC 9 VALUE ZEROS.
77 NUM2 PIC 9 VALUE ZEROS.
77 RESULT PIC 99 VALUE ZEROS.
77 WS-NAME PIC X(10) VALUE ‘MAPLES’.
PROCEDURE DIVISION.
CALC-RTN1.
ACCEPT NUM1.
ACCEPT NUM2.
MULTIPLY NUM1 BY NUM2 GIVING RESULT.
DISPLAY "RESULT IS = ", RESULT.
STOP RUN.
Another SAMPLE COBOL program.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
AUTHOR. SRG.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUDENT-FILE ASSIGN TO DD1
ORGANIZATION SEQUENTIAL
ACCESS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD STUDENT-FILE.
01 STUDENT-REC.
02 ST-EC PIC 9(4).
02 ST-ENAME PIC X(15).
02 ST-BASIC-PAY PIC 9(4)V99.
Continued..
WORKING-STORAGE SECTION.
77 WS-CTR PIC 9(5) VALUE 123.
01 WS-REC.
02 WS-EC PIC 9(4).
PROCEDURE DIVISION.
DISPLAY …………..
OPEN ………..
RTN1.
READ …………AT END CLOSE ……
NOT AT END
MOVE ……….
COMPUTE ……………
ADD ……….
WRITE …………
GO TO RTN1
END-READ.
IDENTIFICATION DIVISION
- IT IS THE SMALLEST AND LEAST SIGNIFICANT DIVISION
All other entries are OPTIONAL and for documentation purpose only
ENVIRONMENT DIVISION
IT HAS 2 SECTIONS
ENVIRONMENT DIVISION
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE COMPUTER. S390. (where the program is compiled)
OBJECT COMPUTER. S390. (where the program is executed)
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT employee-master ASSIGN TO DD1.
organization is sequential.
I-O-CONTROL.
SPECIAL-NAMES.
CURRENCY SIGN IS literal-1.
DECIMAL POINT IS COMMA.
DATA DIVISION
• FILE SECTION.
• WORKING-STORAGE SECTION.
• LINKAGE SECTION.
• LOCAL-STORAGE SECTION.
• REPORT SECTION
• SCREEN SECTION.
DATA DIVISION.
FILE SECTION.
……….. FILE SECTION ENTRIES …………..
WORKING-STORAGE SECTION.
……TEMPORARY MEMEORY VARIABLES, GROUP AND ELEMENTARY ITEMS..
EXAMPLE:
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
AUTHOR. SRG.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Num1 PIC 9 VALUE ZEROS.
01 Num2 PIC 9 VALUE ZEROS.
01 Result PIC 99 VALUE ZEROS.
VARIABLES
Let us start with working- storage section
WORKING-STORAGE SECTION.
01 WS-GRP.
02 WS-EC PIC 9(03).
02 WS-EN PIC X(12).
02 WS-DOB.
03 WS-DD PIC 9(02).
03 WS-MM PIC 9(02).
03 WS-YY PIC 9(02).
01 WS-GRP.
05 WS-EC PIC 9(03).
05 WS-EN PIC X(12).
05 WS-DOB.
10 WS-DD PIC 9(02).
10 WS-MM PIC 9(02).
10 WS-YY PIC 9(02).
Figurative Constants
SPACE or SPACES
PROCEDURE DIVISION.
MAIN-PARA.
ADD A TO B.
MOVE B TO F.
.
.
EXIT-PARA.
STOP RUN.
-------------------------------------------------------------------------------------------------------------------------
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE2.
PROCEDURE DIVISION.
DISPLAY “HELLO WORLD".
STOP RUN.
First PROCEDURE DIVISION STATEMENT
Display statement will show the contents of a variable or literal in the output or
SPOOL (SYSOUT )
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(10) VALUE ‘MAPLES’.
PROCEDURE DIVISION.
DISPLAY “HALLO” WS-NAME.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMOPRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(10) VALUE ‘MAPLES’.
PROCEDURE DIVISION.
DISPLAY “HALLO”
DISPLAY WS-NAME.
DISPLAY “HOW ARE YOU?”.
STOP RUN.
Program Preparation
(You have to use two JCL’s one to compile and create load module and one to
run your program (RUNJCL)
COMPLIER JCL
RUNJCL
NOTE: You can also use the procedure IGYWCLG which can compile, link
and execute with a single JCL //GO.SYSIN DD * is to be used for giving
the input
ACCEPT thru’ SYSIN DD
ACCEPT statement reads a line from SYSIN DD * of RUNJCL and stores the
data in the variable. Data should be given in INTERNAL FORMAT
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMOPRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(10).
77 WS-NUM PIC 9(5).
PROCEDURE DIVISION.
ACCEPT WS-NAME.
DISPLAY WS-NAME.
ACCEPT WS-NUM.
DISPLAY WS-NUM.
STOP RUN.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NAME PIC X(15).
01 AGE PIC 9(2).
PROCEDURE DIVISION.
PARA-1.
ACCEPT NAME.
ACCEPT AGE.
DISPLAY “HELLO " NAME.
DISPLAY “YOUR AGE IS " AGE.
STOP RUN.
ACCEPT variable
FROM {DATE/TIME/DAY/DAY-OF-WEEK } [ YYYYMMDD ].
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMOPRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(10).
PROCEDURE DIVISION.
ACCEPT WS-NAME
DISPLAY “HALLO”
DISPLAY WS-NAME.
DISPLAY “HOW ARE YOU?”.
STOP RUN.
You have to use multiple display statements to show the contents on
separate lines
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMOPRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUMB PIC 9(3)V9(3) VALUE 12.34.
PROCEDURE DIVISION.
ACCEPT NUMB
DISPLAY NUMB.
STOP RUN.
IMPORTANT:
THRU SYSIN DD * YOU HAVE TO GIVE INPUT AS 012340 WITHOUT DOT
ACCEPT can be used to capture system registers like DATE, TIME etc.
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMODAT0.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
ACCEPT WS-DATE
FROM DATE YYYYMMDD.
DISPLAY WS-DATE.
STOP RUN.
ACCEPT variations
ACCEPT WS-NAME
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
ACCEPT WS-TIME FROM TIME.
DISPLAY WS-TIME.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. DEMOWK01.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.