0% found this document useful (0 votes)
91 views10 pages

2) COBOL Class 01 - Variable Declaration

Uploaded by

prasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
91 views10 pages

2) COBOL Class 01 - Variable Declaration

Uploaded by

prasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 10

COBOL (Common Business Oriented Language) – 15-18 sessions

----------------------------------------------------------------
Intro COBOL Program Structure - Division, Section & Paragraph

Variable Declarations - Level Numbers, PIC clause,


Data types & Size
Input-Output & Arithmetic - VALUE CLAUSE, Accept &
Display - Compute
Data Movement Verbs - Simple Move, Move with Of
clause, Group Move & CORR
Conditional Statements - IF & Evaluate Statement –
Continue & Next Sentence
Control Sequence Verbs - Perform ,STOP RUN, GOBACK,
EXIT, EXIT PROGRAM, GOTO
File Handling - OPEN, READ, WRITE, REWRITE,
DELETE & CLOSE
Memory Saving - Usage Clause, 88 Level
Number, Redefines & Renames 66 LEVEL
Array-Occurs table - Search & Search All - PERFORM
VARYING
Sub-Program - CALL Statement
(Static & Dynamic Call)
String Handling Verbs - String, Unstring, Inspect &
Referential
===================================================================================
==========================
Mandatory Task To Complete in Practicals:
1. DISPLAY PGM
===================================================================================
==========================
COBOL CLASS 01 - VARIABLE DECLARATION:-
--------------------------------------------------
AS DEVELOPER -> 3 STEPS:

1. CODE THE COBOL PGM --> 2. COMPILE THE PGM -LOAD 3. CODE THE TEST
RUNJCL EXECUTE.

CODE - > COMPILE -> EXECUTE


|
ANY COBOL PGM: 1. GET THE DATA AS INPUT INTO THE PGM
2. APPLY THE BUSINESS RULES -> PROCESS THE DATA
3. SEND THE PROCESS DATA AS OUTPUT.

-> INPUT -> PROCESS -> OUTPUT


|
3 STEPS: 1. DECLARE THE VARIBALE AS REQUIRED (MEMORY ALLOCATION)
2. INITILIZE THE VAIRBALE (CLEAN THE MEMORY)
3. GET THE DATA INTO THE VARIBALE.
--> HOW TO DECLARE THE VAIRBALE:

VARIBALE -> TEMPORARY MEMORY SPACE -WITHIN THE PGM - USED TO STORE & PROCESS THE
DATA

REAL DATA -> FILE/TABLE**(MILLION RECORDS) -- GET 1 RECORD -> PGM (VARIBALE -
STORE + PROCESS- SEND IT ) --> FILE/TABLE(PROCESSED DATA)

VARIBALE > 2 TYPES


1. GROUP VARIBALE -> IF THE DATA CAN BE SUB-DIVIDED -
WE CAN DEFINE A GROUP VAIRBALE.
2. ELEMENTARY VARIBALE -> ITS A VALUE - WE CANNOT
SUB-DIVIDE

EX:- CUST-ADDRESS --> GROUP -> CITY,STATE,PINCODE


ACCT-TYPE --> ELEMENTARY -> SAVING OR CURRENT OR CHECKING <<
VALUE

EX:- VAR-A
VAR-B -> WE CANNOT TELL THE TYPE BY NAMES
-> SYSTEM ALSO -> CANNOT DECIDE THE TYPE BY NAME.

SYNTAX**:- TELL YOU HOW TO CODE A PGM**

AS PER THE SYNTAX: GROUP VARIBALE: LEVEL-NUMBER VARIABLE-NAME.


(END WITH A DOT)

ELEMENTARY VARIBALE: LEVEL-NUMBER VARIABLE-NAME PIC


(FOLLOWED BY PIC)

EX: 01 VAR-A PIC - ELEMENTARY


01 VAR-B. -> GROUP

==> DEFINE THE VARIBALE -> ELEMENTARY:

LEVEL-NUMBER VARIABLE-NAME PIC DATA-TYPE(SIZE).


-->

LEVEL-NUMBER -> IN COBOL - ALL THE VARIBALE MUST BE PREFIXD WITH A LEVEL NUMBER
-> USED TO TELL THE STRUCTURE OF THE DATA RECORDS

1. IN COBOL WE HAVE LEVEL NUMBER -> 01,02...49 - 66,77 88


2. 01 LEVEL NUMBER -> USED FOR GROUP VAIRBALE & ALSO ELEMENTARY VARIBALE.
3. 02-49 -> 1. MUST COME UNDER 01 LEVEL
2. 02-49 - CAN BE USED TO DEIFNE A SUB-GROUP & ELEMENTARY AS WELL.
3. IN CASE OF ANY SUB-GROUP -> THE ELEMENTARY VARIBALE UNDER THAT
SHOULD USE 'INCREASED LEVEL NUMBER'

IN GENERAL -> WE USE -> 01 - 03, 05 , 07..


01 - 05 ,10 , 15
->
IN A PGM -> WE Can define ANY NUMBER GROUP WE WANT TO USE
-> WE CAN DEFINE ANY NUMBER ELEMENTARY WE WANT TO USE

-> 77 -> ONLY ELEMENTARY -> IGNORE IT -> USE ALWAYS 01.
-> 66 * 88 -> LATER.

01 ACCT-DETAILS.
03 ACCT-NUMBER PIC X
03 CUST-NAME PIC X
03 CUST-ADDRESS.
05 CITY PIC X
05 STATE PIC X
05 PINCODE PIC X
03 ACCT-BAL PIC S-9-V
03 ACCT-TYPE PIC X
03 ACCT-OPEN-DATE PIC X
03 ACCT-CLOSE-DATE.
05 YYYY PIC 9
05 MM PIC 9
05 DD PIC 9
03 ACCT-STATUS PIC X

01 ACCT-TOTAL-BAL PIC S-9-V

#POINT2: VARIABLE NAME**

RULES: 1. MAX 32 CHAR


2. SHOULD NOT START WITH A NUMBER
3. SHOULD NOT USE THE COBOL KEY WORD 01 DISPLAY - 01
DIVISION < IN VALID
01 DISPLAY-VAR -> OKAY
4. SHOULD NOT USE MULTIPLE WORD AS UR VARIBALE
- INSTEAD U CAN JOIN THE WORD BY USIUNG 'HYPEN'
01 ACCT NUMBER. INVALID -
NO SPACE
01 ACCT-NUMBER VALID ->
HYPEN

5** -> ALWAYS -ALL THE VARIBALE -MUST BE SELF EXPLAINED.


6** -> VARIBALE SHOULD POINT TO THE DATA SOURCE

--> ABOVE IS THE BOOK ---> BELOW IS THE PROJECT POINTS

-> DEV-1 -> CODED A PGM P1 -> 2010 IN THE PGM HE DEFINED SOME VAIRBALE..

01 CS PIC (THIS IS AN ELEMENTARY VARIBALE)

-> 2023 -> WE JOINED THE PROJECT -> ASKED -ANALYSIS THE PGM P1

-> VAIRBALE 'CS' -> WHAT DOES THIS VARIABLE MEANS??

-> DEV-2 -> CODED A PGM P2 = 1990 IN THE PGM -VRIBALE..

01 CLAIM-STATUS PIC ... THIS ELEMTNATY VARIBALE.

-> 2023 -> WE JOINED THE PROJECT -> ASKED -ANALYSIS THE PGM P2
-
-> CLAIM-STATUS -> --EASY TO UNDERSTAND.

PGM P3 - --FROM WHERE THE DATA IS COMING THE


VAIRBALE.
---------- --------------------------------------
CLAIM-STATUS > NO PREFIX /NO SUFIX ->
FILE VARIBALE.
WS-CLAIM-STATUS > WS- WORKING-STORAGE ->
DEFINE BY DEVELOPER - TO BUILD LOGIC**
WS-CLAIM-STATUS-HOLD > WS- HOLD -> TO STORE/HOLD
PREVIOUS RECORD *FIND THE DUPLICATE
DCL-CLAIM-STATUS > DCL- DB2 TABLE VAIRBALE.
CLAIM-STATUSI > SUFIX -> I -> ONLINE INPUT
VARIBALE. CICS PGM
CLAIM-STATUSO > SUFIX -> O -> OUTPUT
VAIRBALE CICS PGM

3. PIC -> USED TO PROVIDE THE DATA-TYPE & SIZE FOR A ELEMENTARY VARIBALE
|
PICTURE

4. DATA-TYPE & SIZE:-

DATA-TYPE -> TELL -> WHAT KIND OF DATA -IS STORED IN THAT VARIBALE.

IN COBOL -> 3 TYPES 1. NUMERIC ->DENOTED 9 01 VAR-NAME PIC


9 -> VAIRBALE MEMORY SPACE USED TO STORE NUMERIC DATA
2. ALPHABATIC -> DENOTED A
3. ALPNUMERIC -> DENOTED X.

NUMERIC -> ALLOW -> 0-9 => ALP -> A-Z SYMBOL ==> ALP=NUM =-> 0-9 & A-
Z -SPACE.

EX:
->NUMERIC: -9
VALUE 123 PIC 9(03) 9 -NUMERIC DATA ,
03 MEMORY ALLOCATION
VALUE +/-123 PIC S9(03) S- SIGEN
NUMBEIC = 9 - 03 MEMORY
VALUE +/-123.45 PIC S9(03)V9(2) S - SIGNED - V-
ASSUMED DECIMAL

-> ALPBHATIC (NOT USED)


-A VALUE ANIL PIC A(04) A- TYPE , 04 - SIZE

-> ALP-NUMERIC
X VALUE ANIL PIC X(04)
VALUE 1234 PIC X(04).
VALUE ANIL1234 PIC X(08)

ABOVE IS BOOK POINT --> BELOW IS PROJECT POINT**


================================================

PONIT#:IF THE DATA IS INVLOVED IN CAL -> THEN IT WILL BE NUMERIC -- IF NOT
ALP-NUMERIC.

-> AS DEVELOPER -> DEFINE A VARIBALE.

VALUE => 12345 -> ? -> DATA-TYPE X(05)


9(05) -> WHY SO ->

-> DIFF B/W -> NUMBER & NUMERIC


|-> VALUE THAT WILL BE INVOLVED IN CALCLUATION.

EX: PINCODE -> 1837191 -- X.

->DEVELOP -> CODE THE PGM** -> FOR THEM - PGM IS THE MOST IMPORTANT ->
WRONG
---------
DATA = IS MORE IMPORTANT:

==> ACCT-NUMBER -> X TYPE*

OPENING A NEW BANK -> ACCT-NUMBER PIC X(04).

-> POSSIBALE VALUE I CAN HAVE IN ACCT-NUMBER --> 0000-9999,A000-


A999,Z999,ZZ99,ZZZ9,ZZZZ -> UNLIMIT POSSIBLITLTY

-> 1ST CUSTOMER -> ACCT-NUMBER -> 0001


-> 2ND CUSTOMER -> ACCT-NUMBER -> PREVIOUS-ACCT-NUM + 1 =>
ERROR .

OPENING ANOTHER BANK -> ACCT-NUMBER PIC 9(04).


->
POSSIBLE VALUE: -> 0000 - 9999 --> LIMITED VALUE

-> 1ST CUSTOMER -> ACCT-NUMBER --> 0001


-> 2ND CUSTOMER -> PREVIOUS-ACCT-NUM + 1 => 0002
...
1 YEAR
-> NEW CUSTOMER -> ACCT-NUMBER -> 9999
->
NEW CUSTOMER -> ANIL -> DEPOIST -> 100 BILLION $ --> ACCT-NUMBER ->
9999 +1 -> ERROR

OPTION 1. REMOVED ANY OLD CUSTOMER - ZERO BAL -> TAKE


ANIL BILL..
2. SAY NO TO ANIL
#POINT2
DATA: -> KEY FIELDS:: >> ACCT-NUMBER , CLAIM-NUMBER , PHO NUMBER , PAN , SSN ,
AADHAR, PASSPORT , VECH-RN

1. ALWAYS INCREASE
2. NO DUPLICATE

-> ACCT-NUMBER -> COMBINATION > X & 9

X -> =UNLIMITED POSSIBLILTY


9 -> =USED FOR CAL

-> ACCT-NUMBER 01 ACCT-NUMBER.


03 BRACH-CODE PIC X(04). 0001
0002
03 AREA-CODE PIC X(02). 01 02
... 99 A1 ZZ 01
03 ACCT-SEQ-NUMBER PIC 9(06). 1-99999 1-99999
1-99999 1-999999 1-999999 1-99999

-> V-RIN -> 2 - STATE CODE


2 -> RTA CODE
LETTER -< TYPE
4 -> NUMBER

POINT#3
DATES** -> SOME THEY ARE DISPLAY
=> X
SOME OF THEM ARE CALUCATION -> AGE OF THE CUSTOMER. , EMI
DUE , POST BILL DATE =>9

-> FORMAT** -> YYYYMMDD < 8 FORMAT


YYYY-MM-DD < 10 FORMAT (DDMMYYYY - INVALID)

============================
COBOL: AS A DEVELOPER:-

AS A DEVELOPER: 3 STEPS 1. CODE THE PGM


2. COMPILE THE PGM - CONVERT THE CODE - MACHINE LANG
3. EXECUTE THE PGM

-> CODE - COMPILE & EXECUTE

COBOL LANG -> PGM LANG 1. LOGIC - DATA PROCESSING


1. CONDITION -> POLICY -1 YEAR START TODAY
- 100,000
-> CLIAM -> SEP 25 2025 -->
APPROVED? REJECTED
-> POLICY EXPIRED ??
> CLAIM REQ -> DEC 2023 -> 1>
50000 -> APPROVED -> <100%
2> 200000
-> APPROVED -> 90,000
3> 10000
-> APPROVED -> 8000

2. CALUCATION

EACH DAY -> HAVING 1 CLAIM TO PROCESS -> CAN I DO IT MANUALLY? -> YES
100 YES MANUAL
-
1000000 million -1. MAY BE ISSUE -> TIME CONSUION
MANUL ERROR
-->
-> WE AS HUMAN CAN PROCESS SOME AMT OF DATA
-> AS PROJECT -> DAILY -WE GET MILLION OF RECORD TO PROCESS
-> FOR THIS WE NEED A MACHINE -> MAINFRAME

-> MAINFRAME -> CAN I TELL VERBELLY TO DO SOMETHING -> NO


> CAN I TELL IN ENG AND ASK TO DO THE PROCESS > NO
> PROGRAM LANG -> YES

COBOL -> EASY LANG


> ENGLISH LIKE LANG

-> COBOL IS ALWAYS LENGTH -> SMALL LOGIC -> 300 LINES CODE
GOOD PROJECT LEVEL -> 3000 LINE CODE.

---> IN COBOL CODE FORMAT:

DIVISION
SECTION
PARAGRAPHS
STATEMENT --> INSTRUCTION TELLING THE SYSTEM WHAT TO DO.
ADD -STATEMENT
READ FILE -> STATEMENT

IN COBOL -> 4 DIVISION

1. IDENFICATION DIVISION (ID DIVISION)


2. ENVIRONMENT DIVISION
3. DATA DIVISION.
4. PROCEDURE DIVISION.

-> ID DIVISION: THIS IS USED TO PROIVDE -IN-PROGRAM DOCIMENTATION DETAILS

1. IN THIS DIVISION 6 PARA -> OUT OF THESE ONLY PROGRAM-ID IS


REQUIRED, OTHER ARE OPTIONAL.
2. PROJECT PGM -> PROGRAM-ID, AUTHOR AND DATE-WRITTEN.
SYNTAX:
ID DIVISION.
PROGRAM-ID. NAME-OF-PGM. REQUIRED
AUTHOR. UR NAME.
DATE-WRITTEN. TODAY.
DATE-COMPILED. TODAY.
INSTALLTION. TEAM/APPLICATION NAME.
SECURITY. WARNING MESSAGE

--> NAME-OF-PGM -> ALP-NUMERIC -MAX 8 CHAR

EX: ANILPGM1 , ANILPGM2 --> ARE THESE VALID NAME? -> YES
CAN I USE THIS NAMING STYLE IN MY PROJECT ->
NO

-> PROJECT -> APPLICATION-A --> Z1YNnnnn -> NEW PGM -> Z1YN1881 -->
Z1YN0 -> KINDS , Z1YN1.. , Z1YN2..
APP- B --> Z1YEnnnn -> NEW PGM -> Z1YE1881

--> ENVIRONMENT DIVISION:- -> USED TO DEFINE THE FILES REQUIRED IN THE PGM (IF
ANY)

-> AINFRAME -STORE THE DATA -2 PLACE 1. FILE


2. DATABASE
IN CASE = IF UR PGM - NEED THE DATA FROM A FILE (INPUT ) -
SEND THE DATA TO A FILE (OUTPUT) -> WE NEED TO DEFINE THE
FILE NAME IN ENV DIVISION,

-> IN SOME PGM DO NOT HAVE A FILE -> THIS DIVISION IS OPTIONAL**

SYNTAX: ENVIRONMENT DIVISION.


INPUT-OUTPUT SECTION.
FILE-CONTROL.
DEFINE THE FILES

ONLINE TEST QUESTION:-

COBOL PGM TYPE** IS ENV DIVISION REQUIRED(Y/N)


---------------------------- -----------------------------------
-----------
BATCH PGM 1. ONLY COBOL N
2. COBOL+FILE YES
3. COBOL+DB2 TABLE N
4. COBOL+FILE + DB2 YES
ONLINE PGM
5. COBOL+CICS N
6. COBOL+CICS+FILE N - ONLINE PGM -ENV
DIVISION IS NOT REQUIRED
7. COBOL+CICS+DB2 N
8. COBOL+CICS+FILE+DB2 N
ANSWER -> ALL PGM EXPECT 1ST
> 2 4 6 8
> EXCEPT 1 & 5
3. DATA DIVISION:-
1. USED TO DEFINE THE VAIRBALE IN THE PGM

VARIBALE: IN THE PGM -> IS TEMP MEMORY SPACE - USED TO STORE AND PROCESS THE
DATA

ACCOUNT-FILE: --> DEPOIST 100$ COBOL PGM:


CURR-ACCT-FILE
A111 1. GET THE DATA INTO PGM
A111
ANIL -> DEFINE VARIBALE -> ACCT-NUM
A111 ANIL
1000.00 CUST-NAME ANIL
1100.00
SAVINGS CURR-ACCT-BAL 1000.00 +
100.0 -1100.00
ACCT-TYPE - SAVINGS
2. AFTER PROCESS - SEND THE DATA OUT OF PGM

FOR DATA ELEMENT -> WE NEED TO DEFINE - A VAIRBALE

SYNTAXl DATA DIVISION.


FILE SECTION. VARIBALE OF FILE
WORKING-STORAGE SECTION. DEVELOPER VAIRBALE -TO BUILD LOGIC
LINKAGE SECTION.

4. PROCEDURE DIVISION:-
1. CONTAINS THE PGM LOGIC + CAL => TO PROCESS THE DATA
2. IN THIS DIVIISON - WE DO NOT HAVE ANY PRE-DEFINED
SECTION/PARAGRAPHS
3. AS A DEVELOPER -> WE CAN DEFINE OUR OWN SECTION.

4. USING THE STAMTENT - IN A RIGHT ORDER - WE CODE THE LOGIC.

SYNTAXl PROCEDURE DIVISION.


000-MAIN-PARA.
STATEMENT1
S2
S3
STOP RUN. END OF THE COBOL PGM.

->
-> EX: LET US GO TO A MOVIE (NEW MOVIE) -< ALL OF GET THE
SCREEN/AUDIT ->MOVIE START

1. TITLE -> ENJOY


2. CAST -. HER/HERION - HAPPY
3. TECH -> MUSIC , DIRECT ,
PRODUCER
4. OPENING SCENE -> LET US - COME
OUT OF THE MOVIE

-> HAPPY / ANGRY -> WHY UR ANGRY? -> MISS THE WHOLE STORY

-->
ID DIVISION. PGM NAME *TITLE
ENVIRONEMENT. FILE NAME (CAST)
DATA DIVISION. VARIBALE NAME (TECH)
--
PROCEDURE DIVISION --> WHOLE STORY - 80% WORK LOAD
- STATMENTS => INSTRUCTION TO
SYSTEM HOW TO PROCESS THE DATA

==? DIVISION SECTION PARA & STATEMENT


-> CODE A COBOL PGM -> COBOL CODE SHEET** ANSWER

CODE SHEET -> 1-80 COL LENGTH

1-6 COL -> LINE NUMBER (AUTO-GENERTE)

7* -> USED FOR MAKING A LINE - AS 'COMMENT' 1. IN PGM -> CODE TO


EXECUTE- PROCESS THE DATA
2. IN PGM -> WRITE - DETAILS - IN
ENG -> EXPLAIN THE LOGIC
IN THE 7TH COL -> * -> CONSIDE THAT LINE - AS COMMENT
-> SYSTEM WILL IGNORE THOSE LINE - DURING EXEUCTION
8-11 -> AREA-A -> HEADER
-> DIVISION - SECTION - PARAGAPHS = LEVEL NUMBER

12-72 -> AREA-B -> CODE THE STATEMENT ( U BREAK A STATEMENT INTO MANY LINES)

73-80 -> CHANGE TAG** (REAL PGM)

=-=> 7-72 -> 7 -* - COMMENT


-> 8 -> START HEADER
-> 12 -> START STATEMENT

--> PUNCH CARD -> SIZE 1-80


SAMPLE COBOL PGM:

1 8 12

ID DIVISION.
PROGRAM-ID. CBLPGM01.
AUTHER. NAME.
DATE-WRITTEN. TODAY.

ENVIRONMENT DIVISION.
INPUT-OUTOUT SECTION.
FILE-CONTROL.

DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.

PROCEDURE DIVISION.
000-MAIN-PARA.

DISPLAY 'HELLO ALL'


STOP RUN.

You might also like