cob old ay 1
TRANSCRIPT
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 2/81
Evolution and Features of COBOL.
General Coding and Format rules.
Language Fundamentals.
Input and Output verbs.
Arithmetic verbs.
Design and development of simple COBOL programs
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 3/81
Early years.
ANS Versions of COBOL.
Future of COBOL.
History of COBOL
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 4/81
1960 – COBOL (Common Business Oriented Language)
initial specifications presented by CODASYL (Conference
on Data System Languages)
1964 – revised to make COBOL more flexible
1968 – ANSI (American National Standards Institute)
developed American National Standard (ANS) COBOL
– Standardized form
– Attempted to overcome incompatibilities of different
versions of COBOL
1974 – ANSI published revised version of (ANS) COBOL
– Business applications needed to manipulate character as
well as numeric data
– String operations added
History of COBOL
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 5/81
1985 – ANSI published another revisedversion of COBOL
– Designed to take advantage of structured
programming techniques
– Logic errors reduced with END statements
– Case statement reduced nested IFs
– Less English-like
– Maintained readability and business orientation
– Compatible with previous versions
History of COBOL
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 6/81
COBOL
COBOL is an acronym which stands forCOmmon Business Oriented Language.
The name indicates the target area of COBOL
applications. COBOL is used for developing business,
typically file-oriented, applications.
It is not designed for writing systems programs.
You would not develop an operating system or acompiler using COBOL.
COBOL is one of the oldest computer languagesin use (it was developed in late 1950s).
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 7/81
Nature of COBOL
Business Oriented Language.
Standard Language.
Robust Language.
Structured Programming Language.
English-like Language.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 8/81
Structure of a COBOL program
PROGRAM
DIVISIONS
SECTIONS
PARAGRAPHS
SENTENCES
STATEMENTS
RESERVED
WORDS
USER DEFINED
WORDS
CHARACTERS
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 9/81
COBOL Character set
Alphabets (Both upper and lower case)
Digits (0 to 9)
Special characters
b - + *
/ = $
; . “ „
< > ( )
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 10/81
The COBOL DIVISIONs
DIVISIONS are used to identify the principalcomponents of the program text. There are fourDIVISIONS in all.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION. // Optional
DATA DIVISION. // Optional
PROCEDURE DIVISION.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 11/81
IDENTIFICATION DIVISION
The purpose of the IDENTIFICATION
DIVISION is to provide information
about the program to the programmer
and to the compiler.
Most of the entries in the
IDENTIFICATION DIVISION aredirected at the programmer and are
treated by the compiler as comments.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 12/81
IDENTIFICATION DIVISION...
An exception to this is the PROGRAM-
ID clause. Every COBOL program must
have a PROGRAM-ID. It is used toenable the compiler to identify the
program.
There are several other informationalparagraphs in the IDENTIFICATION
DIVISION but we will ignore them for
the moment.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 13/81
IDENTIFICATION DIVISION...
The IDENTIFICATION DIVISION has
the following structureIDENTIFICATION DIVISION.
PROGRAM-ID. PGM-NAME.
[AUTHOR. YourName.]
IDENTIFICATION DIVISION.PROGRAM-ID. FIRSTPGM.
AUTHOR. Michael Coughlan.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 14/81
IDENTIFICATION DIVISION...
The keywords IDENTIFICATION DIVISION represent the division header and signal thecommencement of the program text.
The paragraph name PROGRAM-ID is akeyword. It must be specified immediately after thedivision header.
The program name can be up to 8 characters longon MF(30 in case of windows).
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 15/81
IDENTIFICATION DIVISION...
IDENTIFICATION DIVISION.
PROGRAM-ID. Member-name. ( Max 8 chars, letters & digits only )
AUTHOR. / Optional entryINSTALLATION. / Optional entry
DATE-WRITTEN. / Optional entry
DATE-COMPILED. / Optional entry
Is used to identify the program to the computer.
Is the least significant DIVISION of a COBOL
program.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 16/81
ENVIRONMENT DIVISION
The ENVIRONMENT DIVISION is totally
optional unless you want to use files /
specify special devices to the compiler in
your program.
Is used to indicate the Specific Computers
used to develop and execute the program.
The general format of ED is
ENVIRONMENT DIVISION.CONFIGURATION SECTION.
SOURCE-COMPUTER. VAX-6410.
OBJECT-COMPUTER. IBM-ES9000.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPL-FILE ASSIGN TO
DISC.
...
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 17/81
The DATA DIVISION
The DATA DIVISION is used to describe mostof the data that a program processes.
The DATA DIVISION has two main sections- – FILE SECTION.
– WORKING-STORAGE SECTION.
The FILE SECTION is used to describe most of the data that is sent to, or comes from, the
computer‟s peripherals.
The WORKING-STORAGE SECTION is usedto describe the general variables used in the
program.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 18/81
DATA DIVISION
DATA DIVISION. / Optional entry
FILE SECTION.
FD filename
. . . . . . .
SD sortfile. . . . . . .
WORKING-STORAGE SECTION.
. . . . . . .
Is used to describe the structure of the fields,
records, files and temporary variables used for
calculations.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 20/81
PROCEDURE DIVISION…
The PROCEDURE DIVISION is whereall the data described in the DATA
DIVISION is processed and produced
desired results. It is here that theprogrammer describes his algorithm.
The PROCEDURE DIVISION is
hierarchical in structure and consists of Sections, Paragraphs, Sentences and
Statements.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 21/81
PROCEDURE DIVISION...
Only the Section is optional. There mustbe at least one paragraph, sentence andstatement in the PROCEDUREDIVISION .
In the PROCEDURE DIVISION,paragraph and section names are chosenby the programmer.
The names used should reflect theprocessing being done in the paragraph orsection.
S i
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 22/81
Sections A SECTION is a block of code made up of one
or more paragraphs. A SECTION begins with the section-name and
ends where next section name is encountered or
where the program text ends.
A SECTION name consists of a name devised
by the programmer or defined by the language
followed by the word SECTION followed by a
full stop.
– U0000-SELECT-USER-RECORDS SECTION.
– FILE SECTION.
P h
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 23/81
Paragraphs
Each section consists of one or more paragraphs.
A PARAGRAPH is a block of code made up of one or more sentences.
A PARAGRAPH begins with the paragraph-
name and ends with the next paragraph or sectionname or the end of the program text.
The paragraph-name consists of a name devised
by the programmer or defined by the language
followed by a full stop. – P0000-PRINT-FINAL-TOTALS.
– PROGRAM-ID.
S d S
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 24/81
Sentences and Statements A PARAGRAPH consists of one or more sentences.
A SENTENCE consists of one or more statements and is terminated by
a full stop.
– MOVE .21 TO VAT-RATE
COMPUTE VAT-AMOUNT = PRODUCT-COST * VAT-
RATE.
– DISPLAY "Enter Name " WITH NO ADVANCING
ACCEPT STUDENT-NAMEDISPLAY "Name Entered was " STUDENT-NAME.
A STATEMENT consists of a COBOL verb and an operand or
operands.
– SUBTRACT T-TAX FROM GROSS-PAY GIVING NET-PAY
– READ STUDENT-FILE
AT END SET END-OF-FILE TO TRUE
END-READ
Fi COBOL
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 25/81
First COBOL program
IDENTIFICATION DIVISION.PROGRAM-ID.FIRSTPGM.AUTHOR. Michael Coughlan.DATA DIVISION.WORKING-STORAGE SECTION.01 WS-NUM-1 PIC 9(001) VALUE ZEROS.
01 WS-NUM-2 PIC 9(001) VALUE ZEROS.01 WS-RESULT-1 PIC 9(002) VALUE ZEROS.PROCEDURE DIVISION.A0000-MAIN-PARA.
ACCEPT WS-NUM-1
ACCEPT WS-NUM-2MULTIPLY WS-NUM-1 BY WS-NUM-2 GIVING
WS-RESULT-1DISPLAY "Result is = ", WS-RESULT-1
STOP RUN.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 26/81
The minimum COBOL program
IDENTIFICATION DIVISION.PROGRAM-ID. SMALLPGM.
PROCEDURE DIVISION.A0000-DISPLAY-PARA.DISPLAY "I did it."STOP RUN.
What is the model we have used to
describe the
COBOL program structure? TOP-DOWN
COBOL di l
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 27/81
COBOL coding rules
Almost all COBOL compilers treat a line of
COBOL code as if it contained two distinct areas.These are known as; Area A and Area B
When a COBOL compiler recognizes these two
areas, all division, section, paragraph names, FDentries and 01 level entries must start in Area A.
All other sentences/statements must start in Area
B.
Area A is four characters wide and is followed by
Area B.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 28/81
COBOL coding rules...
In some COBOL compilers these coding
restrictions are removed.
– For example In Microfocus COBOL compiler
directive
$ SET SOURCEFORMAT"FREE" frees usfrom all formatting restrictions.
$ SET SOURCEFORMAT"FREE"IDENTIFICATION DIVISION.PROGRAM-ID. ProgramFragment.
* This is a comment. It starts* with an asterisk in column 1
COBOL coding sheet
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 29/81
COBOL coding sheet
Column numbers
1 2 3 4 5 6 7 8 9 10 11 12 72 80
Column
numbers
* Area A Area BI
D
E
N
T
I
F
I
C
A
T
I
O
N
A
R
E
A
- /
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 30/81
COBOL coding rules
Each line is considered to be made up of 80
columns.
Columns 1 to 6 are reserved for line numbers.
Column 7 is an indicator column and has special
meaning to the compiler.
Asterisk ( * ) indicates commentsHyphen ( - ) indicates continuation
Slash ( / ) indicates form feed
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 31/81
COBOL coding rules
Columns 8 to 11 are called Area A. All
COBOL DIVISIONs, SECTIONs,
paragraphs and some special entries must
begin in Area A.
Columns 12 to 72 are called Area B. All
COBOL statements must begin in Area B.
Columns 73 to 80 are identification area.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 32/81
COBOL data description
COBOL uses what could be described as a“declaration by example” strategy.
In effect, the programmer provides thesystem with an example, or template, orPICTURE of what the data item looks like.
From the “picture” the system derives theinformation necessary to allocate it.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 33/81
Basic data types
Alphabetic
Numeric
Alphanumeric
Edited numeric
Edited alphanumeric
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 34/81
Literals
Literals are symbols whose value does notchangein a program.
There are 3 types of literals namely
(1) Numeric literals.
(2) Non-numeric literals.(3) Figurative constants.
Li l
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 35/81
Literals
Are formed using digits only.
May include a sign which must be the extremeleft character.
There must not be any blank between the signandthe first digit.
May include a decimal point which can not betheright most character.
Can have at most 18 digits.
Numeric literals
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 36/81
Literals
Are used display headings or messages.
Are a sequence of characters (except quotes)from
the COBOL character set enclosed withinquotes.
May contain up to 160 characters includingspaces.
Non-numeric literals
Lit l
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 37/81
Literals
Figurative constants Meaning
ZERO(S) or ZEROES Represents the value 0, one or
more depending on the context
SPACE(S) Represents one or more spaces
HIGH-VALUE(S) Represents the highest value
LOW-VALUE(S) Represents the lowest value
QUOTE(S) Represents single or double
quotes
Figurative constants
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 38/81
Data names
Are named memory locations.
Must be described in the DATA
DIVISION before they can be used in thePROCEDURE DIVISION.
Can be of elementary or group type.
Can be subscripted.
Are user defined words.
Rules for forming User defined
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 39/81
Rules for forming User-defined
words
Are used to form section, paragraph and datanames.
Can be at most 30 characters in length.
Only alphabets, digits and hyphen are allowed.
Blanks are not allowed.
May not begin or end with a hyphen.
Should not be a COBOL reserved word.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 40/81
Description of data names
All the data names used in the PROCEDUREDIVISION must be described in the DATADIVISION.
The description of a data name is done with theaid of
(1) Level number
(2) PICTURE clause(3) VALUE clause
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 41/81
Description of data names
Is used to specify the the data hierarchy.
Level number
Level Number Purpose
01 Record description and independent items
02 to 49 Fields within records and sub items
66 RENAMES clause
77 Independent items
88 Condition names
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 42/81
Description of data names
Is used to specify the following
(1) The data type
(2) The storage requirement.
Can be abbreviated as PIC.
Can be abbreviated in case of recurringsymbols.
Is used only elementary items.
PICTURE clause
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 43/81
Description of data names
PICTURE clause
Code Meaning
9 Numeric
A Alphabetic
X Alphanumeric
V Decimal Point
S Sign bit
i i f d
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 44/81
Description of data names
VALUE clause
Is used to assign an initial value to a
elementary data item.
The initial value can be numeric literal,
non- numeric literal or figurative constant.
Is an optional clause.
Group and elementary items
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 45/81
Group and elementary items
In COBOL the term “group item” is used to
describe a data item which has been further
subdivided.
– A Group item is declared using a level
number and a data name. It cannot havea picture clause.
– Where a group item is the highest item ina data hierarchy it is referred to as a
record and uses the level number 01.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 46/81
Group and elementary items..
The term “elementary item” is used to describedata items which are atomic, that is, not furthersubdivided.
An elementary item declaration consists of;
• a level number,
• a data name
•picture clause.
An elementary item must have a picture clause.
Every group or elementary item declaration mustbe followed by a full stop.
PICTURE Clauses for Group Items
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 47/81
PICTURE Clauses for Group Items
Picture clauses are NOT specified for „group‟
data items because the size of a group item isthe sum of the sizes of its subordinate,elementary items and its type is alwaysassumed to be PIC X.
The type of a group items is always assumed tobe PIC X, because group items may haveseveral different data items and types
subordinate to them.
An X picture is the only one which couldsupport such collections.
G I /R d E l
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 48/81
H E N N E S S Y R M 9 2 3 0 1 6 5 L M 5 1 0 5 5 0 F
Group Items/Records - Example
STUDENT-DETAILS
WORKING-STORAGE SECTION.
01 STUDENT-DETAILS PIC X(026).
Group Items/Records - Example
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 49/81
H E N N E S S Y R M 9 2 3 0 1 6 5 L M 5 1 0 5 5 0 F
STUDENT-DETAILS
STUDENT-NAME STUDENT-ID COURSE-CODE GRANT GENDER
Group Items/Records - Example
WORKING-STORAGE SECTION.
01 STUDENT-DETAILS.
02 STUDENT-NAME PIC X(010).02 STUDENT-ID PIC 9(007).
02 COURSE-CODE PIC X(004).
02 GRANT PIC 9(004).
02 GENDER PIC X(001).
Group Items/Records
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 50/81
H E N N E S S Y R M 9 2 3 0 1 6 5 L M 5 1 0 5 5 0 F
STUDENT-DETAILS
SURNAME INITIALS
WORKING-STORAGE SECTION.
01 STUDENT-DETAILS.
02 STUDENT-NAME.03 SURNAME PIC X(008).
03 INITIALS PIC X(002).
02 STUDENT-ID PIC 9(007).
02 COURSE-CODE PIC X(004).
02 GRANT PIC 9(004).
02 GENDER PIC X(001).
STUDENT-NAME STUDENT-ID COURSE-CODE GRANT GENDER
Group Items/Records
LEVEL Numbers & DATA
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 51/81
LEVEL Numbers & DATAhierarchy
In COBOL, level numbers are used to decomposea structure into it‟s constituent parts.
In this hierarchical structure the higher the levelnumber, the lower the item is in the hierarchy. Atthe lowest level the data is completely atomic.
The level numbers 01 through 49 are general levelnumbers, but there are also special level numberssuch as 66, 77 and 88.
In a hierarchical data description what is important
is the relationship of the level numbers to oneanother, not the actual level numbers used.
01 STUDENT-DETAILS.02 STUDENT-NAME.
03 SURNAME PIC X(008).
03 INITIALS PIC X(002).
02 STUDENT-ID PIC 9(007).
02 COURSE-CODE PIC X(004).
02 GRANT PIC 9(004).
02 GENDER PIC X(001).
01 STUDENT-DETAILS.05 STUDENT-NAME.
10 SURNAME PIC X(008).
10 INITIALS PIC X(002).
05 STUDENT-ID PIC 9(007).
05 COURSE-CODE PIC X(004).
05 GRANT PIC 9(004).
05 GENDER PIC X(001).
D i ti f d t
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 52/81
Description of data names
Example
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-REGNO PIC X(5).01 WS-NAME.
05 WS-FIRST-NAME PIC A(15).
05 WS-MID-NAME PIC A(15).
05 WS-LAST-NAME PIC A(10).
01 WS-AGE PIC 99V99.01 WS-SCHOLARSHIP PIC 9(4) VALUE 1000.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 53/81
Edited picture symbols
Edit symbol Meaning
Z Zero suppression
* Check protection
, Comma insertion
- Minus sign insertion
+ Plus or minus sign insertion
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 54/81
Edited picture symbols
Edit symbol Meaning $ Dollar sign insertion
CR Credit symbol
DB Debit symbol
B Blank insertion
/ Slash insertion
. Decimal point insertion
BLANK WHEN ZERO Blank insertion when
the value is zero.
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 55/81
Data movement verb.
Arithmetic Verbs.
Input / Output Verbs.
Sequence control verbs.
File handling verbs.
PROCEDURE DIVISION Verbs
I t / O t t V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 56/81
ACCEPT Verb
Syntax
ACCEPT identifier [ FROM {DATE, DAY, TIME, mnemonic-name }].
Examples
(1) ACCEPT NUMBER-1.
(2) ACCEPT TODAY-DATE FROMDATE.
Input / Output Verbs
I t / O t t V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 57/81
DISPLAY Verb
Syntax
DISPLAY { identifier-1, literal-1 } , . . .
Examples
(1) DISPLAY “The sum is ” SUM.
Input / Output Verbs
A i h i b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 58/81
Arithmetic Verbs
ADD
SUBTRACT
MULTIPLY
DIVIDE
COMPUTE
ADD V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 59/81
ADD Verb
Syntax-1
ADD { identifier-1, literal-1 } [ , identifier-2,
literal-2 ] . . . TO identifier-3 [ , identifier-4 ] . . .
Syntax-2
ADD { identifier-1, literal-1 } { identifier-2, literal-2
} [ identifier-3, literal-3 ] GIVING identifier-4 . . .
ADD V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 60/81
ADD Verb
Examples
(1) ADD NUM-1 TO NUM-2.
(2) ADD NUM-1, NUM-2 TO NUM-3.
(3) ADD 12, NUM-1, NUM-2 TO NUM-3, NUM-4.
(4) ADD NUM-1, NUM-2 GIVING NUM-3.
(5) ADD 12, NUM-1 GIVING NUM-2, NUM-3.
ADD Examples
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 61/81
ADD Examples
ADD Cash TO Total.
Before 3 1000After
ADD Cash, 20 TO Total, Wage.Before 3 1000 100After
ADD Cash, Total GIVING Result.Before 3 1000 0015After
ADD Males TO Females GIVING TotalStudents.Before 1500 0625 1234After
3 1003
3 1023 123
3 1000 1003
1500 0625 2125
SUBTRACT V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 62/81
SUBTRACT Verb
Syntax
SUBTRACT { identifier-1, literal-1 } [ identifier-2,
literal-2 ] . . . FROM identifier-3 [ , identifier-4 ]
[ , GIVING identifier-5 [ , identifier-6 ] . . . ]
SUBTRACT V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 63/81
SUBTRACT Verb
Examples
(1) SUBTRACT NUM-1 FROM NUM-2.
(2) SUBTRACT NUM-1, NUM-2 FROM NUM-3.
(3) SUBTRACT 5, NUM-1 FROM NUM-2, NUM-3.
(4) SUBTRACT 12 FROM NUM-1 GIVING NUM-
2.
(5) SUBTRACT NUM-1 FROM NUM-2 GIVING
NUM-3.
SUBTRACT Examples
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 64/81
SUBTRACT Examples
SUBTRACT Tax FROM GrossPay, Total.
Before 120 4000 9120After
SUBTRACT Tax, 80 FROM Total.
Before 100 480
After
SUBTRACT Tax FROM GrossPay GIVING NetPay.
Before 750 1000 0012
After
120 3880 9000
100 300
750 1000 0250
MULTIPLY V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 65/81
MULTIPLY Verb
Syntax
MULTIPLY { identifier-1, literal-1 } BY identifier-2
[ identifier-3 ] . . . [ , GIVING identifier-4
[ , identifier-5 ] . . . ]
MULTIPLY V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 66/81
MULTIPLY Verb
Examples
(1) MULTIPLY NUM-1 BY NUM-2.
(2) MULTIPLY NUM-1 BY NUM-2 GIVINGNUM-3.
(3) MULTIPLY 5 BY NUM-1 GIVING NUM-2.
(4) MULTIPLY NUM-1 BY NUM-2 GIVING
NUM-4, NUM-5.
DIVIDE V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 67/81
DIVIDE Verb
Syntax-1
DIVIDE { identifier-1, literal-1 } INTO identifier-2
[ , identifier-2 ] . . . [ GIVING identifier-4
[ , identifier-5 ] . . . ] ..
Syntax-2
DIVIDE { identifier-1, literal-1 } BY { identifier-2,
literal-2 } GIVING identifier-3 [ , identifier-4 ].
DIVIDE V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 68/81
DIVIDE Verb
Syntax-3
DIVIDE { identifier-1, literal-1 } { INTO , BY }
{ identifier-2, literal-2 } GIVING identifier-3
REMAINDER identifier-4 .
DIVIDE V b
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 69/81
DIVIDE Verb
Examples
(1) DIVIDE 5 INTO NUM-1.
(2) DIVIDE 6 INTO NUM-1 GIVING NUM-2,
NUM-3.
(3) DIVIDE NUM-1 BY 3 GIVING NUM-2, NUM-3.
(4) DIVIDE NUM-1 BY NUM-2 GIVING NUM-3.
(5) DIVIDE NUM-1 BY NUM-2 GIVING NUM-3
REMAINDER NUM-4.
MULTIPLY and DIVIDE
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 70/81
MULTIPLY Subs BY Members GIVING TotalSubs
ON SIZE ERROR DISPLAY "TotalSubs too small"
END-MULTIPLY.Subs Members TotalSubs
Before 15.50 100 0123.45
After
MULTIPLY 10 BY Magnitude, Size.
Before 355 125
After
DIVIDE Total BY Members GIVING Average ROUNDED.
Before 9234.55 100 1234.56
After
15.50 100 1550.00
3550 1250
9234.55 100 92.35
O O i
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 71/81
ROUNDED Option
Syntax
Arithmetic statement [ ROUNDED ].
Examples(1) ADD NUM-1, NUM-2, NUM-3 GIVING NUM-4
ROUNDED.
(2) DIVIDE NUM-1 BY NUM-2 GIVING NUM-3ROUNDED.
The ROUNDED
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 72/81
option
Receiving Field Actual Result Truncated Result Rounded Result
PIC 9(3)V9. 123.25
PIC 9(3). 123.25
123.2 123.3
123 123
The ROUNDED option takes effect when, after
decimal point alignment, the result calculated must
be truncated on the right hand side.
The option adds 1 to the receiving item when the
leftmost truncated digit has an absolute value of 5
or greater.
ON SIZE ERROR O i
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 73/81
ON SIZE ERROR Option
Syntax
Arithmetic statement [ON SIZE ERROR imperative
statement . . .]
Examples
(1) ADD NUM-1, NUM-2, NUM-3 TO NUM-4 ON SIZE
ERROR PERFORM 900-EXIT-PARA.
(2). DIVIDE NUM-1 BY NUM-2 ON SIZE ERROR
PERFORM 800-ERROR-PARA.
On size error option
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 74/81
A size error condition exists when, after decimal
point alignment, the result is truncated on eitherthe left or the right hand side.
If an arithmetic statement has a rounded phrasethen a size error only occurs if there is truncationon the left hand side (most significant digits).
Receiving Field Actual Result SIZE ERROR
PIC 9(3)V9. 245.96
PIC 9(3)V9. 1245.9PIC 9(3). 124
PIC 9(3). 1246
PIC 9(3)V9 Not Rounded 124.45
PIC 9(3)V9 Rounded 124.45
PIC 9(3)V9 Rounded 3124.45
p
Yes
Yes No
Yes
Yes
NoYes
COMPUTE Verb
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 75/81
COMPUTE Verb
Syntax
COMPUTE identifier-1 . . . [ ROUNDED ]
= algebraic expression [ ON SIZE ERROR ]
imperative statement.
Example
COMPUTE VOLUME = ( 4 / 3) * ( 22 / 7 ) * R ** 3.
Note: If the ROUNDED and ON SIZE ERROR both
appear, then the ROUNDED option should precede the
ON SIZE ERROR.
The COMPUTE
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 76/81
Compute IrishPrice = SterlingPrice / Rate * 100.Before 1000.50 156.25 87After 179.59 156.25 87
The COMPUTE COMPUTE Identifier [ ROUNDED ] . . . = ArithmeticExpression
ON SIZE ERROR
NOT ON SIZE ERRORStatementBlock END - COMPUTE
Precedence Rules.
1. ** = POWER NN
2. * = MULTIPLY x/ = DIVIDE ÷
3. + = ADD +- = SUBTRACT -
Review
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 77/81
Review
Features of COBOL.
General Coding and Format rules.
Language Fundamentals.
Input and Output verbs.
Arithmetic verbs.
Review questions
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 78/81
q
If an entry must begin in area A ,it must begin in
If an entry must begin in area B,it must begin in position
Program-id is the paragraph name that appears in the
The word rounded (precedes, follows) the ON SIZEERROR clause in an arithmetic statement
Column number 8,9,10,11
12 to 72 any where;
identification division
precedes
Review questions
8/2/2019 Cob Old Ay 1
http://slidepdf.com/reader/full/cob-old-ay-1 79/81
A numeric literal in COBOL can have at most
A Non numeric literal can have maximum
Indicate True or False
– A 01 level entry cannot have a picture class
– In COBOL a data name must contain at least 8
characters
– A COBOL sentence consists of one or more than one
statement the last of which is terminated by a period
18 digits
160 characters including spaces
False
False
True