COBOL
COBOL
Column 1-6
Column 7
Column 7 in COBOL is used as continuation column
The possible values in Column 7 are
1. / - Specifies new line (also used for commenting COBOL lines)
2. * - it is used for commenting COBOL lines
3. –(HIPHEN) – Continuation Character
4. D – Debugging
Column 8-11
Column 12-72
Column 73-80
All Keywords are also called as COBOL VERBS. The list of Keywords
available in COBOL are as follows…………
1. ADD
2. SUBTRACT
3. DIVIDE etc..
2. OPTIONAL WORDS
ADD A TO B GIVING C. C = A + B.
ADD A TO B. A+B
3. FIGURATIVE CONSTANTS
a. Imperative Statement
b. Conditional Statement
2. Sentence
3. Paragraphs
It is a collection of Sentences
PARAGRAPH must start from Area-A
PARAGRAPH name may contain a-z, 0-9 and ‘ – ‘ combinations
The max length of PARAGRAPH name is 35 characters
Spaces between the PARAGRAPH name not allowed
4. Sections
It is a collection of PARAGRAPHS
SECTION is a second highest unit in COBOL
SECTION always contain the PARAGRAPHS
5. Divisions
DIVISION is a collection of SECTIONS
Every SECTION must be derived from DIVISION only
DIVISIONS in COBOL
1. IDENTIFICATION DIVISION
This is the 1st division in COBOL and also it is mandatory for every COBOL
program
Identification division does not contain any Sections
The list of Paragraphs in Identification division are as follows……
PROGRAM-ID.<NAME>.
AUTHOR.<NAME>
DATE-WRITTEN.<DATE>
DATE-COMPILED.<DATE>
2. ENVIRONMENT DIVISION
a. Source-Computer
b. Object-Computer
c. Special-names
It is useful for including the files into a COBOL program. In this we have
an important paragraph FILE-CONTROL
FILE-CONTROL
3. DATA DIVISION
A. Linkage Section
B. File Section
C. Working-storage Section
A. LINKAGE SECTION
B. FILE SECTION
C. WORKING-STORAGE SECTION
4. PROCEDURE DIVISION
NOTE
EX END-IF
END-EVALUATE
END-PERFORM etc
1. Numeric
2. Alphabetic
3. AlphaNumeric
00
00 = 05 = 5?
9(03) 000 12
012 =12
9(06) 12345
012345
9(01) = 10101010
2. Alphabetic (A)
Possible values are a-z
The default values are Spaces
Allocation will be done from left to right
A(04) = Balaji
Bala
3. Alphanumeric (X)
X(04) Balaji
Bala
1234
LEVEL NO#
01
77 – elementary dataitem
VALUE CLAUSE
By using value clause we can assign a data for the data item
Depends on data type we have to write a value
Value clause should not exceed the length given for the data item
FILLER CLAUSE
NOTE
A. INSERTION
1. SIMPLE INSERTION
B – Blank
/ - Inserting ‘ / ‘
0 (zero) – Inserting ‘ 0 ‘
, - Insering ‘ , ‘
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
STOP RUN.
EX.2
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(3).
01 B PIC 9(3).
01 C PIC X(3).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
ACCEPT C.
DISPLAY A.
DISPLAY B.
DISPLAY C.
STOP RUN.
OUTPUT
WELCOME TO COBOL
ABC
456
A3C
NOTE
By using the ‘VALUE CLAUSE’ we cant assign a value more the given
‘PICTURE CLAUSE’
But in case of ‘ACCEPT’ even though the input value is greater it takes only
the character depends on ‘PICTURE CLAUSE’ length (In ACCEPT the
value will be assigned to the data item position by position)
When you assign a value using VALUE CLAUSE 1st allocation will be done
depending on PICTURE CLAUSE
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3)B9(1).
01 B PIC 9(2)/9(2).
01 C PIC 9(2),9(2).
01 D PIC 9(2)09(1)09.
PROCEDURE DIVISION.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
STOP RUN.
OUTPUT
A – 123 4
B – 12/34
C – 12,34
D – 120304
NOTE
In insertion according to the given picture clause the value will be allocated
In general
9 = 9(1) A = A(1) X = X(1)
99 = 9(2) AA = A(2) XX = X(2)
999 = 9(3) AAA = A(3) XXX = X(3)
2. SPECIAL INSERTION
In ‘special insertion’ we are having only one value i.e., Decimal Point (.)
In Decimal always allocation will be done before Decimal Point only
We cant use special insertion in arithmetic operations
01 A PIC 9(5).9(5).
MOVE 12.34 TO A
00012.34000
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3).9(2).
01 B PIC 9(2).9(2).
01 C PIC 9.9.
01 E PIC 9(3).
PROCEDURE DIVISION.
MOVE 1234 TO A.
DISPLAY A.
MOVE 121.1173 TO A.
DISPLAY A.
MOVE 4567.6674 TO B.
DISPLAY B.
MOVE 1.11 TO C.
DISPLAY C.
MOVE 131415.0130 TO D.
DISPLAY D.
MOVE 4532.113 TO E.
DISPLAY E.
STOP RUN.
3. FLOAT INSERTION
1. S – Sign
2. + - Positive
3. - - negative
1. S (Sign Clause)
In general, in COBOL we cant write ‘+‘ or ‘–‘ values for the data item
but by using sign clause we can write the values because in COBOL each and
every ‘+’ and ‘–‘ values are having their own combinations in sign clause
+0 = { -0 = }
+1 = A -1 = J
+2 = B -2 = K
+3 = C -3 = L
+4 = D -4 = M
+5 = E -5 = N
+6 = F -6 = O
+7 = G -7 = P
+8 = H -8 = Q
+9 = I -9 = R
a. SIGN LEADING
J23 A23
Because -1 = J and +1 = A
EX +123 -123
+ 123 - 123
c. SIGN TRAILING
EX +123 -123
123+ 123-
123 + 123 –
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MOVE A TO B,C,D,E.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DISPLAY E.
STOP RUN.
OUTPUT
A – 34E
B – C45
C - + 345
D – 34E
E – 345 +
+, - Insertion
In sign clause we are having predefined rules while moving the data from
one sign to another sign
+ - NO SIGN
+ + +
- + -
- - -
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 B PIC +9(3).
01 C PIC -9(3).
01 E PIC +9(3).
01 F PIC -9(3).
PROCEDURE DIVISION.
MOVE A TO B,C.
MOVE D TO E,F.
DISPLAY A. 34E
DISPLAY B. +345
DISPLAY C. 345
DISPLAY D. 34N
DISPLAY E. -345
DISPLAY F. -345
STOP RUN.
4. FIXED INSERTION
1. CR – Credit
2. DB – Debit
3. $ - Inserting $ symbol
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 B PIC 9(3)CR.
01 C PIC 9(3)DB.
01 E PIC 9(3)CR.
01 F PIC 9(3)DB.
PROCEDURE DIVISION.
MOVE A TO B,C.
MOVE D TO E,F.
MOVE 1234 TO G.
DISPLAY B. 123CR
DISPLAY C. 123DB
DISPLAY E. 123
DISPLAY F. 123
DISPLAY G. $1234
STOP RUN.
B. SUPPRESSION
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 B PIC Z9(6).
01 C PIC ZZ9(5).
01 D PIC ZZZ9(4).
01 E PIC *9(6).
01 F PIC **9(5).
01 G PIC ***9(4).
PROCEDURE DIVISION.
DISPLAY A. 0001234
DISPLAY B. 001234
DISPLAY C. 01234
DISPLAY D. 1234
DISPLAY E. *001234
DISPLAY F. **01234
DISPLAY G. ***1234
STOP RUN.
EX
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
STOP RUN.
RENAMES CLAUSE
EX
ID DIVISION.
PROGRAM-ID. PGM10.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1.
PROCEDURE DIVISION.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
MOVE C TO RES1.
DISPLAY RES1.
STOP RUN.
EX
ID DIVISION.
PROGRAM-ID. PGM11.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1.
02 ENO PIC 9(4) VALUE 1001.
PROCEDURE DIVISION.
DISPLAY GRP.
STOP RUN.
EX
ID DIVISION.
PROGRAM-ID. PGM12.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1.
DISPLAY GRP1.
STOP RUN.
LEVEL NO# 77
EX
ID DIVISION.
PROGRAM-ID. PGM13.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DISPLAY X.
DISPLAY Y.
DISPLAY Z.
STOP RUN.
INITIALIZE VERB
Initialize is mainly used for initializing the data item with their default values
Using ‘initialize’ we can effectively ‘REPLACE’ ‘FIGURATIVE
CONSTANTS’
SYNTAX
INITIALIZE DATANAME
EX
ID DIVISION.
PROGRAM-ID. PGM13.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
INITIALIZE X.
MOVE 456 TO X.
DISPLAY X.
INITIALIZE Y.
DISPLAY Y.
INITIALIZE Z.
MOVE X2Y TO Z.
INITIALIZE Z.
DISPLAY Z.
MOVE ‘ABC4’ TO Z.
DISPLAY Z.
STOP RUN.
MOVE STATEMENT
By using MOVE we can move the data to any no of data items and also we
can move the data from one data item to any no of data items
SYNTAX
MOVE D.NAME1 TO D.NAME2,D.NAME3,………..,D.NAMEn
MOVE VALUE TO D.NAME1,D.NAME2,………..,D.NAMEn
In MOVE we are having two types. They are ……..
1. Group MOVE
2. Elementary MOVE
EX
ID DIVISION.
PROGRAM-ID. PGM13.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1.
01 GRP2.
77 Y PIC 9(5).
77 Z PIC 9.
77 C PIC 9(2).
PROCEDURE DIVISION.
MOVE GRP1 TO GRP2.
MOVE X TO Y,Z,C.
DISPLAY GRP1.
DISPLAY GRP2.
DISPLAY X.
DISPLAY Y.
DISPLAY Z.
DISPLAY C.
STOP RUN.
While moving data from one group to another group irrespective of sub
group elements data it transpose the data from group to group
In MOVE 1st allocation will be done and then the value will be counted
REDEFINES CLAUSE
EX
ID DIVISION.
PROGRAM-ID. PGM14.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1. 20bytes
02 A. 10 bytes
02 B REDEFINES A. =<
03 B1 PIC A(2).
03 B2 PIC 9(3).
03 B3 PIC X(5).
02 C PIC A(20).
PROCEDURE DIVISION.
DISPLAY GRP1.
DISPLAY A.
DISPLAY B.
DISPLAY B1.
DISPLAY GRP2.
STOP RUN.
NOTE
CONDITIONAL NAMES
EX
ID DIVISION.
PROGRAM-ID. PGM15.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
ACCEPT SEL.
IF(VOWELS)
ELSE IF EVEN
ELSE IF ODD
END-IF.
DISPLAY SEL.
STOP RUN.
USAGE CLAUSE
Usage is mainly used for reducing the memory by usage also specifies the
internal allocation
By having USAGE we can store large amount of data in small amount of
storage
In USAGE we have mainly 4 types. They are…..
1. USAGE COMP
2. USAGE COMP-1
3. USAGE COMP-2
4. USAGE COMP-3
1. USAGE COMP
2. USAGE COMP-1
3. USAGE COMP-2
4. USAGE COMP-3
EX
ID DIVISION.
PROGRAM-ID. PGM16.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 D USAGE COMP-1.
01 E USAGE COMP-2.
PROCEDURE DIVISION.
DISPLAY LENGTH OF A.
DISPLAY LENGTH OF B.
DISPLAY LENGTH OF C.
DISPLAY LENGTH OF D.
DISPLAY LENGTH OF E.
DISPLAY LENGTH OF F.
DISPLAY LENGTH OF G.
DISPLAY LENGTH OF H.
DISPLAY LENGTH OF I.
STOP RUN.
ARITHMETIC VERBS
1. ADD
2. SUBTRACT
3. MULTIPLY
4. DIVIDE
SYNTAX
2. SUBTRACT –
SYNTAX
3. MULTIPLY –
SYNTAX
4. DIVIDE –
SYNTAX
EX
SYNTAX
EX
EX1
ID DIVISION.
PROGRAM-ID. PGM17.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
ADD A TO B GIVING C.
DISPLAY C.
INITIALIZE A.
INITIALIZE B.
DISPLAY C.
INITIALIZE A.
INITIALIZE B.
ADD A TO B.
DISPLAY B.
STOP RUN.
EX2
ID DIVISION.
PROGRAM-ID. PGM19.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
DISPLAY C.
DISPLAY C.
DISPLAY B.
STOP RUN.
EX3
ID DIVISION.
PROGRAM-ID. PGM20.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
MULTIPLY A BY B GIVING C.
DISPLAY C.
MULTIPLY A BY B.
DISPLAY B.
STOP RUN.
EX4
ID DIVISION.
PROGRAM-ID. PGM21.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4).
01 D PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
DIVIDE A BY B.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DIVIDE A BY B GIVING C.
DIVIDE C.
STOP RUN.
EX5
ID DIVISION.
PROGRAM-ID. PGM21.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4).
01 D PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
DIVIDE A INTO B.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DIVIDE C.
STOP RUN.
COMPUTE VERB
By using ‘COMPUTE’ we can effectively replace COBOL Arithmetic Verbs
Using ‘COMPUTE’ we can also perform Arithmetic Operations as follows
ADD with +
SUBTACT with –
MULTIPLY with *
DIVIDE with /
COMPUTE C = A + B
COMPUTE C = A – B
COMPUTE C = A * B
COMPUTE C = A / B
EX
ID DIVISION.
PROGRAM-ID. PGM21.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(2).
01 D PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
COMPUTE C = A + B.
DISPLAY C.
COMPUTE D = A - B.
DISPLAY D.
INITIALIZE C.
INITIALIZE D.
COMPUTE C = A * B.
DISPLAY C.
COMPUTE D = A / B.
DISPLAY D.
STOP RUN.
ON SIZE ERROR
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
ADD A TO B GIVING C ON SIZE ERROR
DISPLAY C.
STOP RUN.
INPUT OUTPUT
10 , 90 ON SIZE
ERROR
ROUNDED
By using ROUNDED we can round the value after decimal point according
to the given picture clause
It is a COBOL VERB and only applicable for arithmetic expressions
EX
ADD A TO B GIVING C ROUNDED
A = 12.3793
B = 13.1073
C = 25.4866
EX
ID DIVISION.
PROGRAM-ID. PGM24.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 C PIC 9(3).9(3).
01 D PIC 9(2).9(2).
01 E PIC 9(2).9(1).
PROCEDURE DIVISION.
DISPLAY C.
DISPLAY D.
DISPLAY E.
ADD A TO B GIVING C.
DISPLAY C.
STOP RUN.
COPY STATEMENT
ID DIVISION.
PROGRAM-ID. PGM24.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3).
01 B PIC 9(3).
01 C PIC 9(6).
COMPUTE C = A + B.
DISPLAY C.
IN COPY3
COMPUTE C = A - B.
DISPLAY C.
IN COPY4
COMPUTE C = A * B.
DISPLAY C.
IN COPY5
COMPUTE C = A / B.
DISPLAY C.
COPY COPY1.
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
COPY COPY4.
STOP RUN.
PARM PARAMETER
By using PARM we can pass MAX 100 characters of data into the COBOL
program
PARM is a variable character which contain both length and text fields
SYNTAX
01 PARM.
EX
ID DIVISION.
PROGRAM-ID. PGM26.
DATA DIVISION.
LINKAGE SECTION.
01 PARM-VAL.
DISPLAY P-TXT.
DISPLAY P-LEN.
STOP RUN.
CORRESPONDING VERB
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1.
01 GRP2.
PROCEDURE DIVISION.
DISPLAY GRP1.
DISPLAY GRP2.
STOP RUN.
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A.
01 B.
PROCEDURE DIVISION.
ADD CORRESPONDING A TO B.
DISPLAY A.
DISPLAY B.
STOP RUN.
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A.
01 B.
02 X3 PIC A(15) VALUE 'WELCOME TO SUBTRACT'.
PROCEDURE DIVISION.
DISPLAY A.
DISPLAY B.
STOP RUN.
1. PERFORM STATEMENT
1. PERFORM PARANAME
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
PERFORM ADD-PARA.
PERFORM SUB-PARA.
STOP RUN.
MUL-PARA.
COMPUTE C = A * B.
DISPLAY C.
ADD-PARA.
COMPUTE C = A + B.
DISPLAY C.
DIV-PARA.
COMPUTE C = A / B.
DISPLAY C.
SUB-PARA.
COMPUTE C = A - B.
DISPLAY C.
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
STOP RUN.
MUL-PARA.
COMPUTE C = A * B.
DISPLAY C.
ADD-PARA.
COMPUTE C = A + B.
DISPLAY C.
DIV-PARA.
COMPUTE C = A / B.
DISPLAY C.
SUB-PARA.
COMPUTE C = A - B.
DISPLAY C.
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
MUL-PARA.
COMPUTE C = A * B.
DISPLAY C.
ADD-PARA.
COMPUTE C = A + B.
DISPLAY C.
DIV-PARA.
COMPUTE C = A / B.
DISPLAY C.
SUB-PARA.
COMPUTE C = A - B.
DISPLAY C.
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
UNTIL-PARA.
COMPUTE A = A+1.
EX1
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 I PIC 9(1).
PROCEDURE DIVISION.
STOP RUN.
VARY-PARA.
EX2
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 I PIC 9(1).
PROCEDURE DIVISION.
STOP RUN.
VARY-PARA.
CASE STUDY
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
STOP RUN.
TAB-PARA.
COMPUTE C = A * B.
6. INLINE PERFORM
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 C PIC 9(2).
PROCEDURE DIVISION.
PERFORM
ADD A TO B GIVING C
DISPLAY C
DISPLAY C
MULTIPLY A BY B GIVING C
DISPLAY C
END-PERFORM.
STOP RUN.
2. GO TO
By using ‘GO TO’ we can transfer the control permanently from one place
to another place within a program
‘GO TO’ permanently transfers the control, we cant expect cursor back
Compare to PERFORM, GO TO is having more logical errors
EX
ID DIVISION.
PROGRAM-ID. PGM36.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 C PIC 9(4).
PROCEDURE DIVISION.
GO TO SUB-PARA.
PERFORM MUL-PARA.
STOP RUN.
MUL-PARA.
COMPUTE C = A * B.
DISPLAY C.
ADD-PARA.
COMPUTE C = A + B.
DISPLAY C.
DIV-PARA.
COMPUTE C = A / B.
DISPLAY C.
SUB-PARA.
COMPUTE C = A - B.
DISPLAY C.
EX
ID DIVISION.
PROGRAM-ID. PGM36.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 C PIC 9(4).
PROCEDURE DIVISION.
GO TO SUB-PARA.
PERFORM MUL-PARA.
MUL-PARA.
COMPUTE C = A * B.
DISPLAY C.
ADD-PARA.
COMPUTE C = A + B.
DISPLAY C.
DIV-PARA.
COMPUTE C = A / B.
DISPLAY C.
SUB-PARA.
COMPUTE C = A - B.
DISPLAY C.
STOP RUN.
IF & NESTED IF
EX
ID DIVISION.
PROGRAM-ID. PGM38.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
IF A>B
ELSE
END-IF.
STOP RUN.
EVALUATE
EX
ID DIVISION.
PROGRAM-ID. PGM39.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MONTH PIC 99.
PROCEDURE DIVISION.
ACCEPT MONTH.
DISPLAY MONTH.
DISPLAY MONTHNAME.
MONTH-PARA
EVALUATE MONTH
END-EVALUATE.
DAY-PARA
DISPLAY MONTHNAME.
EVALUATE TRUE
WHEN MONTH = 4 OR 6 OR 9 OR 11
MOVE 30 TO DAYS
WHEN MONTH = 2
MOVE 28 TO DAYS
END-EVALUATE.
STOP RUN.
CONTINUE will transfer the control to the next statement after an explicit
scope terminator whereas NEXT SENTENCE will transfer control to the
next sentence after next period
These two are mainly used for navigating within a program
IF A>B
CONTINUE/NEXT SENTENCE
IF B>C
DISPLAY ‘B IS BIGGER’
ELSE
DISPLAY ‘C IS BIG’
END-IF
DISPLAY “HELLO”. Continue
DISPLAY “HI”. Next sentence
1. STRING
Using string we can combine one or more strings into one string
SYNTAX
………………..
………………..
………………..
………………..
IDn DELIMITED BY ‘COMMA/SPACE/SIZE’, INTO
IDENTIFIER
END-STRING.
EX
ID DIVISION.
PROGRAM-ID. PGM40.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DISPLAY C.
STOP RUN.
2. UNSTRING
END-STRING.
EX
ID DIVISION.
PROGRAM-ID. PGM41.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 B PIC A(5).
01 C PIC A(3).
01 D PIC A(10).
01 E PIC A(6).
PROCEDURE DIVISION.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DISPLAY E.
STOP RUN.
INSPECT, TALLYING
EX
ID DIVISION.
PROGRAM-ID. PGM42.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(30) VALUE 'HELLO HAI WELCOME TO INSEPECT'.
01 B PIC 9(4).
PROCEDURE DIVISION.
DISPLAY A.
STOP RUN.
REPLACING
EX
ID DIVISION.
PROGRAM-ID. PGM43.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DISPLAY A.
DISPLAY A.
STOP RUN.
CONVERTING
Using CONVERTING we can convert character by character and also
we can convert multiple characters with new characters at a time
EX
ID DIVISION.
PROGRAM-ID. PGM44.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DISPLAY A.
DISPLAY A.
DISPLAY A.
STOP RUN.
REFERENCE MODIFICATION
EX
ID DIVISION.
PROGRAM-ID. PGM45.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 B PIC A(3).
01 C PIC A(3).
01 D PIC A(5).
01 E PIC A(3).
PROCEDURE DIVISION.
MOVE A(11:3) TO B.
MOVE A(7:3) TO C.
MOVE A(1:5) TO D.
MOVE A(15:3) TO E.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DISPLAY E.
STOP RUN.
TABLE HANDLING
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-TAB.
77 I PIC 9(1).
PROCEDURE DIVISION.
ACCEPT ENAME(I)
DISPLAY ENO(I)
DISPLAY ENAME(I)
END-PERFORM.
DISPLAY EMP-TAB.
STOP RUN.
ID DIVISION.
PROGRAM-ID. PGM2.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CLASS-TAB.
77 I PIC 9(1).
77 J PIC 9(1).
PROCEDURE DIVISION.
ACCEPT SEC(I)
DISPLAY SEC(I)
DISPLAY NAME(I,J)
END-PERFORM.
END-PERFORM.
DISPLAY CLASS-TAB.
STOP RUN.
ID DIVISION.
PROGRAM-ID. PGM3.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CLASS-TAB.
77 I PIC 9(1).
77 J PIC 9(1).
77 K PIC 9(1).
PROCEDURE DIVISION.
ACCEPT SEC(I,J)
DISPLAY SEC(I,J)
ACCEPT SEC(I,J,K)
DISPLAY SEC(I,J,K)
END-PERFORM.
END-PERFORM.
END-PERFORM.
DISPLAY CLASS-TAB.
STOP RUN.
SYNTAX1. SEARCH
END-SEARCH
SYNTAX2. SEARCHALL
END-SEARCHALL
EX1. SEARCH
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-TAB.
PROCEDURE DIVISION.
ACCEPT SNUM.
PERFORM SER-PARA.
STOP RUN.
PARA-1
ACCEPT ENO(I).
ACCEPT ENAME(I).
SER-PARA
SEARCH EMP AT END MOVE “ELEMENT NOT FOUND”
WHEN ENO(I)=SNUM
DISPLAY ENO(I)
DISPLAY ENAME(I)
END-SEARCH.
EX2. SEARCHALL
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-TAB.
PROCEDURE DIVISION.
ACCEPT SNUM.
PERFORM SER-PARA.
STOP RUN.
PARA-1
ACCEPT ENO(I).
ACCEPT ENAME(I).
SER-PARA
WHEN ENO(I)=SNUM
DISPLAY ENO(I)
DISPLAY ENAME(I)
END-SEARCH.
FILE HANDLING
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
DESCRIPTION
1. ORGANIZATION
Specifies the behavior of and structure of the file depends on file type we
can assign organization for the file
NOTE
2. ACCESS MODE
a. SEQUENTIAL
b. RANDOM
we can retrieve the data randomly from the specific location in the file
c. DYNAMIC
By using START and READ NEXT we can access the records from the file
DYNAMIC is mainly used for KSDS cluster
3. RECORD KEY
4. RELATIVE KEY
6. FILE STATUS
It is a two digit no mainly used to know the status of a file
It is not mandatory for every file
NOTE
USAGE OF FILES
1. Input
2. Output
3. Extend
4. Input-output
1. INPUT
2. OUTPUT
3. EXTEND
Used to append records in a SEQUENTIAL file
The records are inserted at the end
If the ACCESS MODE is RANDOM or DYNAMIC then EXTEND mode
cannot be used
4. INPUT-OUTPUT
1. OPEN
2. READ
3. WRITE
4. REWRITE
5. DELETE
6. START
7. CLOSE
1. OPEN
2. READ
SYNTAX
END-READ.
3. WRITE
4. REWRITE
5. DELETE
6. START
7. CLOSE
SYNTAX
CLOSE FILENAME
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
ORGANIZATION SEQUENTIAL
DATA DIVISION.
FILE SECTION.
FD FILE1.
01 FILE-REC.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
DISPLAY FS1.
WRITE-PARA.
ACCEPT ENO.
ACCEPT ENAME.
ACCEPT ESAL.
WRITE FILE-REC.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
ORGANIZATION SEQUENTIAL
DATA DIVISION.
FILE SECTION.
FD FILE1.
01 FILE-REC.
49 FILLER X(2).
49 FILLER X(3).
PROCEDURE DIVISION.
PERFORM OPEN-PARA.
PERFORM WRITE-PARA.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
DISPLAY FS1.
WRITE-PARA.
ACCEPT ENO.
ACCEPT ENAME.
ACCEPT ESAL.
WRITE FILE-REC.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
Using FILE STATUS we can know the file status of the file. If operation
is successful it gives ‘00’ otherwise more than ‘00’
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
ORGANIZATION SEQUENTIAL
DATA DIVISION.
FILE SECTION.
FD FILE1.
01 FILE-REC.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
PERFORM OPEN-PARA.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
DISPLAY FS1.
WRITE-PARA.
ACCEPT ENO.
ACCEPT ENAME.
ACCEPT ESAL.
WRITE FILE-REC.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
ORGANIZATION SEQUENTIAL
DATA DIVISION.
FILE SECTION.
FD FILE4.
01 FILE-REC.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
PERFORM OPEN-PARA.
PERFORM READ-PARA.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
DISPLAY FS1.
READ-PARA.
READ FILE4.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
CASE1.
CASE2.
If suppose file having many records we can fetch all at a time by using
following example
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
ORGANIZATION SEQUENTIAL
ORGANIZATION SEQUENTIAL
DATA DIVISION.
FILE SECTION.
FD FILE5.
01 FILE-REC.
FD FILE6.
01 FILE-REC1.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
PERFORM OPEN-PARA.
PERFORM CLOSE-PARA.
STOP RUN.
OPEN-PARA.
DISPLAY FS1.
DISPLAY FS2.
READ-PARA.
DISPLAY FS1.
WRITE-PARA.
WRITE FILE-REC1.
DISPLAY FS2.
CLOSE-PARA.
CLOSE FILE5.
DISPLAY FS1.
CLOSE FILE6.
DISPLAY FS2.