cob old ay 1

81
Programming in COBOL

Upload: vivek-s-kumar

Post on 06-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

8/2/2019 Cob Old Ay 1

http://slidepdf.com/reader/full/cob-old-ay-1 1/81

Programming in COBOL

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 19/81

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

8/2/2019 Cob Old Ay 1

http://slidepdf.com/reader/full/cob-old-ay-1 80/81

Any Questions

????

8/2/2019 Cob Old Ay 1

http://slidepdf.com/reader/full/cob-old-ay-1 81/81

Thank you