CONDITIONAL
NAMES
Ø In COBOL level no# 88 is used for condition checking
Ø Level no# 88 must start from 12th
column only
Ø It does not contain
any picture clause
EX
ID DIVISION.
PROGRAM-ID. PGM15.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SEL PIC X(2).
88 VOWELS VALUES
'A','E','I','O','U'.
88 EVEN VALUES
'2','4','6','8','10','12','14','16'.
88 ODD VALUES
'1','3','5','7','9','11','13','15'.
PROCEDURE DIVISION.
ACCEPT SEL.
IF(VOWELS)
DISPLAY 'ENTERED VOWELS'
ELSE IF EVEN
DISPLAY 'ENTERED EVEN'
ELSE IF ODD
DISPLAY 'ENTERED 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
Ø COMP means
Computational
Ø COMP is binary format
having specific ranges
Ø In COMP we have fixed
range values as follows
9(1) – 9(4) 2 Bytes
9(5) – 9(9) 4 Bytes
9(10) – 9(18) 8 Bytes
EX
01 A PIC 9(3) USAGE
COMP.
PROCEDURE DIVISION.
MOVE 123 TO A.
DISPLAY A.
STOP RUN.
2.
USAGE COMP-1
Ø COMP-1 is single
precision floating point number
Ø COMP-1 does not
contain picture clause because the value of COMP-1 is fixed for 4 Bytes
Ø COMP-1 accepts only 8
to 9 characters of data
EX
01 A USAGE COMP-1
3.
USAGE COMP-2
Ø COMP-2 is a double
precision floating point number
Ø COMP-2 does not
contain picture clause because the value is fixed for 8 Bytes
Ø COMP-2 accepts 17 to
18 characters of data
EX
01 A USAGE COMP-2
4.
USAGE COMP-3
Ø COMP-3 is a packed
decimal format
Ø Packed decimal means
“it stores two characters of data within 1 Byte of storage”
Ø In COMP-3 depending
on picture clause it allocates the memory for the data item
Ø If picture clause is
even. Then……..
N/2+1, where n =
length of picture clause
EX
01 A PIC 9(6) USAGE
COMP-3
N/2+1 = 6/2+1 = 4
Bytes
Ø If picture clause is
odd. Then……….
N+1/2
EX
01 PIC 9(7) USAGE
COMP-3
7+1/2 = 4 Bytes
EX
ID DIVISION.
PROGRAM-ID. PGM16.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3) USAGE COMP.
01 B PIC 9(5) USAGE COMP.
01 C PIC 9(17) USAGE COMP.
01 D USAGE COMP-1.
01 E USAGE COMP-2.
01 F PIC 9(3) USAGE COMP-3.
01 G PIC 9(5) USAGE COMP-3.
01 H PIC 9(6) USAGE COMP-3.
01 I PIC 9(16) USAGE
COMP-3.
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
In COBOL we have mainly 4 Arithmetic Verbs.
They are…
1.
ADD
2.
SUBTRACT
3.
MULTIPLY
4.
DIVIDE
1. ADD
– Used
to perform Addition Operation
SYNTAX
1.
ADD D.NAME1 TO
D.NAME2
2.
ADD
D.NAME1,D.NAME2………..TO D.NAMEN
3.
ADD D.NAME1 TO
D.NAME2 GIVING D.NAME3
4.
ADD D.NAME1,D.NAME2………..
TO D.NAMEN GIVING D.NAMEX
2.
SUBTRACT –
SYNTAX
1.
SUBTRACT D.NAME1 FROM
D.NAME2
2.
SUBTRACT
D.NAME1,D.NAME2………..FROM D.NAMEN
3.
SUBTRACT D.NAME1 FROM
D.NAME2 GIVING D.NAME3
3.
MULTIPLY –
SYNTAX
1.
MULTIPLY D.NAME1 BY
D.NAME2
2.
MULTIPLY D.NAME1 BY
D.NAME2 GIVING D.NAME3
4.
DIVIDE –
While performing Division Operation
we have 2 ways
CASE1:
USING ‘BY’
SYNTAX
1.
DIVIDE D.NAME1 BY
D.NAME2
2.
DIVIDE D.NAME1 BY
D.NAME2 GIVING D.NAME3
3.
DIVIDE D.NAME1 BY
D.NAME2 GIVING D.NAME3 REMAINDER D.NAME4
EX
DIVIDE A BY B GIVING C i.e., C = A/B
CASE2:
USING ‘INTO’
SYNTAX
1.
DIVIDE D.NAME1 INTO
D.NAME2
2.
DIVIDE D.NAME1 INTO
D.NAME2 GIVING D.NAME3
3.
DIVIDE D.NAME1 INTO
D.NAME2 GIVING D.NAME3 REMAINDER D.NAME
EX
DIVIDE A INTO B GIVING C i.e., C =B/A
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.
ADD A,B TO B GIVING C.
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.
SUBTRACT A FROM B GIVING C.
DISPLAY C.
SUBTRACT A,B FROM B GIVING C.
DISPLAY C.
SUBTRACT A,B FROM B.
DISPLAY B.
STOP RUN.
While doing SUBTRACT in the above
example B value must be greater than A
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.
DIVIDE A BY B GIVING C REMAINDER D.
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.
DIVIDE A INTO B GIVING C REMAINDER
D.
DISPLAY C.
DISPLAY D.
DIVIDE A INTO B GIVING C.
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
Ø It is a COBOL verb
mainly used in arithmetic operations
Ø While performing an
arithmetic operation if the resultant data item is unable to store the actual
result of an arithmetic operation it will print an user defined message to the
output
SYNTAX
ADD
D.NAME1 TO D.NAME2 GIVING D.NAME3 ON SIZE ERROR
DISPLAY “IMPERATIVE STATEMENT”
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2) VALUE ZEROS.
01 B PIC 9(2) VALUE ZEROS.
01 C PIC 9(2) VALUE ZEROS.
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
ADD A TO B GIVING C ON SIZE ERROR
DISPLAY "SIZE ERROR
OCCURED".
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
For >5 NEXT
For <=5 Same Value
EX
ID DIVISION.
PROGRAM-ID. PGM24.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3)V9(4) VALUE
117.3237.
01 B PIC 9(3)V9(4) VALUE
101.3563.
01 C PIC 9(3).9(3).
01 D PIC 9(2).9(2).
01 E PIC 9(2).9(1).
PROCEDURE DIVISION.
ADD A TO B GIVING C ROUNDED.
DISPLAY C.
ADD A TO B GIVING D ROUNDED.
DISPLAY D.
ADD
A TO B GIVING E ROUNDED.
DISPLAY E.
ADD A TO B GIVING C.
DISPLAY C.
STOP RUN.
COPY
STATEMENT
Ø By using COPY
STATEMENT we can invoke the repeated lines of code kept in a member of PDS file
for code reusability
Ø By using COPY
STATEMENT we can invoke the members into currently running COBOL program
Ø The included PDS is
called COPY LIBRARY and the members are called COPY BOOKS
Ø We can invoke any no
of COPY BOOKS into currently running program
Ø According to the 1st
statement column no in COPY BOOK, we have to write the COPY STATEMENT in the
program
Ø To include the COPY
BOOKS into the program we have to write the following statement while compiling
//COBOL.SYSLIB DD
DSN=COPYLIBRARY (COPYBOOK)
The
code is written in the members of PDS (MATE02.GRP.PDS)
IN
COPY1 (STARTED FROM COLUMN 8)
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).
IN
COPY2 (STARTED FROM COLUMN12)
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.
02 LENGTH-FIELD PIC S9(VALUE)
USAGE COMP.
02 TEXT-FIELD PIC X(VALUE).
EX
ID DIVISION.
PROGRAM-ID. PGM26.
DATA DIVISION.
LINKAGE SECTION.
01 PARM-VAL.
05 P-LEN PIC S9(4) USAGE COMP.
05 P-TXT PIC X(40).
PROCEDURE DIVISION USING
PARM-VAL.
DISPLAY P-TXT.
DISPLAY P-LEN.
STOP RUN.
After
successful compilation, at run-time give the input value for PARM as follows
PARM = ‘WELCOME TO PARM’
CORRESPONDING
VERB
Ø It is a COBOL
reserved word
Ø In CORRESPONDING it
moves the data only to the corresponding data names
Ø In CORRESPONDING we
have various types as follows………
1.
MOVE CORRESPONDING
2.
ADD CORRESPONDING
3.
SUBTRACT CORRESPONDING
EX:
MOVE CORRESPONDING
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRP1.
02 A2 PIC A(5) VALUE 'HAI'.
02 A4 PIC 9(3) VALUE 178.
01 GRP2.
02 A1 PIC A(4) VALUE 'BYE'.
02 A2 PIC A(3) VALUE 'HI'.
02 A3 PIC X(3) VALUE 'X24'.
02 A4 PIC 9(5) VALUE 1257.
PROCEDURE DIVISION.
MOVE CORRESPONDING GRP1 TO GRP2.
DISPLAY GRP1.
DISPLAY GRP2.
STOP RUN.
EX: ADD
CORRESPONDING
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A.
02 X1 PIC 9(3) VALUE 175.
02 X2 PIC 9(3) VALUE 5.
01 B.
02 X3 PIC A(7) VALUE 'WELCOME'.
02 X4 PIC 9(5) VALUE 17573.
02 X1 PIC 9(2) VALUE 17.
PROCEDURE DIVISION.
ADD CORRESPONDING A TO B.
DISPLAY A.
DISPLAY B.
STOP RUN.
EX:
SUBTRACT CORRESPONDING
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A.
02 X1 PIC 9(3) VALUE 175.
02 X2 PIC 9(3) VALUE 5.
01 B.
02 X3 PIC A(15) VALUE 'WELCOME TO
SUBTRACT'.
02 X1 PIC 9(5) VALUE 18175.
02 X2 PIC 9(2) VALUE 3.
PROCEDURE DIVISION.
SUBTRACT CORRESPONDING A FROM B.
DISPLAY A.
DISPLAY B.
STOP RUN.
SEQUENCE
CONTROL VERB
Ø By using ‘SEQUENCE
CONTROL VERB’ we can overcome the sequential process of COBOL program
Ø In COBOL we have
various ‘SEQUENCE CONTROL VERB’ as follows…..
1.
PERFORM
2.
GO TO
3.
EVALUATE
4.
IF & NESTED IF
5.
CONTINUE
6.
NEXT SENTENCE
1.
PERFORM STATEMENT
Ø Using ‘PERFORM’
statement we can execute any required paragraph existed in the program
Ø In ‘PERFORM’ after
successful execution of the paragraph the control will be written back to the
next statement after ‘PERFORM’
Ø In PERFORM we have
various types as follows……….
1.
PERFORM PARNAME
2.
PERFORM PARANAME N TIMES
3.
PERFORM PARANAME THRU PARANAME
4.
PERFORM PARANAME THRU PARANAME N TIMES
5.
PERFORM PARANAME UNTIL CONDITION
6.
PERFORM PARANAME VARYING UNTIL CONDITION
7.
INLINE PERFORM
1.
PERFORM PARANAME
Using
this possibility we can evaluate any required paragraph among the paragraph
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4) VALUE ZEROS.
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.
2.
PERFORM PARANAME N TIMES
Based on requirement we can repeat
any paragraph for N no of times
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
PERFORM DIV-PARA 2 TIMES.
PERFORM MUL-PARA 3 TIMES.
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.
3.
PERFORM PARANAME THRU PARANAME
We can process the group of
paragraphs within 1 perform statement as follows
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
PERFORM ADD-PARA THRU DIV-PARA.
PERFORM MUL-PARA THRU SUB-PARA 2
TIMES.
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.
4.
PERFORM PARANAME UNTIL CONDITION
In this based on given condition
we can execute the required paragraph
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(1) VALUE 1.
PROCEDURE DIVISION.
PERFORM UNTIL-PARA UNTIL A>3.
STOP RUN.
UNTIL-PARA.
DISPLAY ‘WELCOME TO PARA’.
COMPUTE A = A+1.
5.
PERFORM VARYING CONDITION
Using varying we can repeat the
para for n = no of times sequentially
EX1
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 I PIC 9(1).
PROCEDURE DIVISION.
PERFORM VARY-PARA VARYING I FROM 1 BY 1
UNTIL I>3.
DISPLAY ‘VARYING SEQUENTIALLY’
STOP RUN.
VARY-PARA.
DISPLAY ‘WELCOME TO VARYING’.
EX2
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 I PIC 9(1).
PROCEDURE DIVISION.
PERFORM VARY-PARA VARYING I FROM 3 BY -1
UNTIL I>3.
DISPLAY ‘VARYING SEQUENTIALLY’
STOP RUN.
VARY-PARA.
DISPLAY ‘WELCOME TO VARYING’.
CASE
STUDY
GENERATING
THE TABLES USING COBOL
By using PERFORM STATEMENT in
COBOL we can generate the tables as follows
EX
ID DIVISION.
PROGRAM-ID. PGM30.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(4) VALUE ZEROS.
PROCEDURE DIVISION.
ACCEPT A.
ACCEPT B.
PERFORM TAB-PARA VARYING A FROM 1 BY 1
UNTIL A>20 AFTER
B FROM 1 BY 1 UNTIL B>20.
DISPLAY ’20 * 20 TABLES GENERATED’
STOP RUN.
TAB-PARA.
COMPUTE C = A * B.
DISPLAY A ‘*’ B ‘=’ C
6.
INLINE PERFORM
Ø By using INLINE
PERFORM we can process the list of statements as follows
Ø For INLINE PERFORM
‘END-PERFORM’ is mandatory
EX
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2) VALUE 08.
01 B PIC 9(2) VALUE 09.
01 C PIC 9(2).
PROCEDURE DIVISION.
PERFORM
ADD A TO B GIVING C
DISPLAY C
SUBTRACT B FROM A GIVING 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 A PIC 9(4) VALUE 0072.
01 B PIC 9(4) VALUE 0082.
01 C PIC 9(4).
PROCEDURE DIVISION.
PERFORM ADD-PARA THRU DIV-PARA.
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 A PIC 9(4) VALUE 0072.
01 B PIC 9(4) VALUE 0082.
01 C PIC 9(4).
PROCEDURE DIVISION.
PERFORM ADD-PARA THRU DIV-PARA.
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.
While
using GO TO we always place STOP RUN at-last only
IF
& NESTED IF
Ø Using IF we can also
PERFORM condition checking
Ø ‘IF AND ELSE’ are
used for EVALUATING the given data
SYNTAX
IF <COND>
DISPLAY
‘IMPERATIVE STATEMENT’
ELSE
DISPLAY
‘IMPERATIVE STATEMENT’
END-IF.
EX
ID DIVISION.
PROGRAM-ID. PGM38.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(3) VALUE 127.
01 B PIC 9(3) VALUE 137.
PROCEDURE DIVISION.
IF A>B
DISPLAY 'A IS BIGGER'.
ELSE
DISPLAY 'B IS BIGGER'.
END-IF.
STOP RUN.
EVALUATE
Ø Using EVALUATE we can
execute the case structure
Ø Using EVALUATE we can
effectively replace ‘NESTED-IF’ statement
SYNTAX
EVALUATE
TRUE/FALSE
WHEN
COND1
DISPLAY
‘IMPERATIVE STATEMENT’
WHEN
COND2
DISPLAY
‘IMPERATIVE STATEMENT’
………
………
………
………
……….
WHEN
CONDn
DISPLAY
‘IMPERATIVE STATEMENT’
WHEN
OTHER
DISPLAY
‘IMPERATIVE STATEMENT’
END-EVALUATE.
EX
ID DIVISION.
PROGRAM-ID. PGM39.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MONTH PIC 99.
01 MONTHNAME PIC A(15).
01 DAYS PIC 99.
PROCEDURE DIVISION.
DISPLAY “ENTER THE MONTH NUMBER”.
ACCEPT MONTH.
DISPLAY MONTH.
DISPLAY MONTHNAME.
MONTH-PARA
EVALUATE MONTH
WHEN 1 MOVE 'JANUARY' TO MONTHNAME
WHEN 2 MOVE 'FEBRUARY' TO MONTHNAME
WHEN 3 MOVE 'MARCH' TO MONTHNAME
WHEN 4 MOVE 'APRIL' TO MONTHNAME
WHEN 5 MOVE 'MAY' TO MONTHNAME
WHEN 6 MOVE 'JUNE' TO
MONTHNAME
WHEN 7 MOVE 'JULY' TO MONTHNAME
WHEN 8 MOVE 'AUGUST' TO MONTHNAME
WHEN 9 MOVE 'SEPTEMBER' TO
MONTHNAME
WHEN 10 MOVE 'OCTOBER' TO MONTHNAME
WHEN 11 MOVE 'NOVEMBER’ TO
MONTHNAME
WHEN 12 MOVE 'DECEMBER' TO
MONTHNAME
END-EVALUATE.
DAY-PARA
MOVE ‘DDDDDDDD’ TO MONTHNAME.
DISPLAY MONTHNAME.
EVALUATE TRUE
WHEN MONTH = 4 OR 6 OR 9 OR
11
MOVE 30 TO DAYS
WHEN MONTH = 2
MOVE 28 TO DAYS
WHEN OTHER MOVE 31 TO DAYS
END-EVALUATE.
STOP RUN.
CONTINUE
AND NEXT SENTENCE
Ø CONTINUE will
transfer the control to the next statement after an explicit scope terminator
where as 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’
Ø CONTINUE is like a
NULL STATEMENT which does not do anything where as NEXT SENTENCE will bypass
the statements from execution
No comments:
Post a Comment