1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive...

34
1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed immediately Output (results) displayed on screen immediately

Transcript of 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive...

Page 1: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

1

Interactive vs Batch Programs

Cobol suited for developing both types of programs

Interactive programs Accept input data from keyboard Input data processed immediately Output (results) displayed on screen

immediately

Page 2: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

2

Interactive vs Batch Programs

Batch programs Process large volumes of input at periodic

intervals Input data read in from files Output written to files

Can be files on disk, print files, files to be transmitted to a remote location: but files.

Page 3: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

3

Files, Records, Fields

Field – a single data item: your name; salary; Record – everything to do with a specific topic, such as

all the information about YOU to generate your pay check: Your name, ssan, deductions, address, bank

account number, hours worked, overtime hours…. File – The grouping of individual records of all

employees working in a corporation for whom you want to generate a pay check. Typically read a single record, prepare the output,

read next record, and continue until EOF. Book definitions: p. 21

Page 4: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

4

Overview of the Four Divisions

Every COBOL program contains up to four separate divisions in the following order:

IDENTIFICATION DIVISION

ENVIRONMENT DIVISION

DATA DIVISION

PROCEDURE DIVISION

Page 5: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

5

Overview of the Four Divisions

IDENTIFICATION DIVISION Identifies program to operating system Provides documentation about program

ENVIRONMENT DIVISION Defines file-names Describes devices used to store them Not included in fully interactive programs

Page 6: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

6

Overview of the Four Divisions

DATA DIVISION Describes input and output format of data in files Defines any constants and work areas

PROCEDURE DIVISION Contains instructions to read input, process it and

create output

Page 7: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

7

Sample Interactive Program

Purpose to compute employee WAGES

Input from keyboard HOURS and RATE

Processing compute WAGES as HOURS x RATE

Output displayed on screen WAGES

Page 8: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

8

Sample Interactive Program

IDENTIFICATION DIVISION One required entry, PROGRAM-ID Names the program

DATA DIVISION Describes and defines storage for all data Data defined in WORKING-STORAGE

SECTION for interactive program

Page 9: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

9

IDENTIFICATION DIVISION. PROGRAM-ID. CH0102. DATA DIVISION. WORKING-STORAGE SECTION. 01 SALES-AMOUNT PIC 999V99. 01 SALES-TAX PIC 99.99. Fields; sizes; numeric 01 MORE-DATA PIC XXX VALUE 'YES'. Field; alphanumeric PROCEDURE DIVISION. instructions: operate on data 100-MAIN. PERFORM UNTIL MORE-DATA = 'NO' DISPLAY 'ENTER SALES AMOUNT AS DOLLARS AND CENTS' ACCEPT SALES-AMOUNT reads / accepts from keyboard COMPUTE SALES-TAX = SALES-AMOUNT * .08 DISPLAY SALES-TAX writes to keyboard DISPLAY 'IS THER MORE INPUT (YES OR NO)?‘ prompts user ACCEPT MORE-DATA accepts keyboard input END-PERFORM STOP RUN.

Sample COBOL Program – Interactive (no Environment Division)

Page 10: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

10

Data Defined in Sample Program

Keyed input fields (HOURS, RATE) Output fields (WAGES) Other fields used for processing (MORE-

DATA)

Wages (not shown)01 WAGES PIC 999.99.

Page 11: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

11

PICTURE Clause

01 level begins definition of each field much more later on this… 01 has special significance.

PICTURE or PIC clause describes Type of data

Numeric (PIC 9) Nonnumeric (PIC X) (alphanumeric)

Size of field - determined by number of 9’s or X’s

Page 12: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

12

PICTURE Clauses

RATE with PIC 99V99 includes V to show assumed decimal point position

User enters data with decimal point Program uses V to align data

WAGES includes actual decimal point Shown when value displayed on screen

Wages (not shown)01 WAGES PIC 999.99.

Page 13: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

13

Giving Field Initial Value

MORE-DATA with PIC XXX is nonnumeric field

Assigned initial contents of YES by use of VALUE clause

Value must be in quotation marks since MORE-DATA is nonnumeric field

Page 14: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

14

PROCEDURE DIVISION

Set of instructions to be executed by program Organization of instructions planned before

coding begins Pseudo-code, an English-like description of

program instructions, used for planning Describes program logic and order in which

instructions will be executed

Page 15: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

15

PROCEDURE DIVISION

PROCEDURE DIVISION includes one paragraph 100-MAIN Note: program here is horribly simple, as we would expect at this

time. There is only one paragraph (module) and a structure chart

(architectural design) is almost meaningless – would contain a single box…

List of instructions that follow make up paragraph Period follows last statement in paragraph (STOP RUN.) Main processing controlled by PERFORM … END-

PERFORM loop END-PERFORM is called a ‘scope terminator.’ VERY important!

Page 16: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

16

PERFORM … END-PERFORM

Repeats set of instructions as long as user enters YES in response to prompt

"IS THERE MORE DATA (YES/NO)?"

MORE-DATA initially contains YES so instructions in loop executed first time

Page 17: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

17

PERFORM … END-PERFORM

When user enters NO as response MORE-DATA set to "NO" and loop ends

After loop, STOP RUN is executed, ending program

(Note the indentation of code within the loop. This is essential to good programming style!)

Page 18: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

18

PERFORM … END-PERFORM

Statements in loop executed in order they are listed

DISPLAY displays value in quotes or value of field on screen

ACCEPT stores value user enters from keyboard in field

MULTIPLY performs calculation to find WAGES

Page 19: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

19

Sample Batch Program

In batch mode, data comes from input file instead of keyboard

Data for each employee stored in a record in file on disk (see page 21)

Employee name, hours and rate data called fields

Page 20: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

20

Sample Batch Program

Calculated results (Wages) stored in file instead of displayed on screen (but can be both displayed as well as stored in a

For each input record Record created and stored in output file Includes employee name, hours, rate and

computed wages File intended for printing so spacing added

between fields for readability I disagree. Most input data is NOT spaced for printing!!! Fields are all contiguous for important reasons! (will

discuss)

Page 21: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

21

COBOL Divisions

All four divisions included for batch programs

IDENTIFICATION DIVISION first with required PROGRAM-ID paragraph

ENVIRONMENT DIVISION CONFIGURATION SECTION – not required. INPUT-OUTPUT SECTION assigns input and

output files to specific devices. required to name (called logical file names or

programmer-defined file names) files and associate them with specific devices, such as a CD or disk or …

Page 22: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

22

DATA DIVISION(will be repeating this many times) FILE SECTION describes format of input and

output files Characteristics of the file itself Characteristics of the records and their fields.

Fields in records described using PICTURE clause

Decimal point not stored in input records Use V for ‘implied decimal’ for alignment

Use actual decimal point for fields in output record so it is printed

Page 23: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

23

PROCEDURE DIVISION

Contains instructions to be executed by computer

Instructions executed in order they appear Includes two paragraphs with period at end of

each.

Let’s consider the program in your textbook. This is also assignment #1 to be turned in later. First, let’s overview…

Page 24: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

24

IDENTIFICATION DIVISION. <alignment and indentation!>PROGRAM-ID. SAMPLE <divisions, sections, paragraphs, sentences statements>AUTHOR. YOUR-NAME-PLEASE.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL. SELECT EMPLOYEE-DATA ASSIGN TO EMP-DAT.

SELECT PAYROLL-LISTING ASSIGN TO PRINTER. <will change>DATA DIVISION. <input and output files and formats; working storage…>FILE SECTION.FD EMPLOYEE-DATA.01 EMPLOYEE-RECORD.

05 EMPLOYEE-NAME-IN PIC X(20).05 HOURS-WORKED-IN PIC 99.05 HOURLY-RATE-IN PIC 9V99. <alignment; pic clauses>

FD PAYROLL-LISTING.01 PRINT-REC.

05 PIC X(20).05 NAME-OUT PIC X(20).05 PIC X(10).05 HOURS-OUT PIC 99.05 PIC X(8).05 RATE-OUT PIC 9.99.05 PIC XXXXXX.05 WEEKLY-WAGES-OUT PIC 999.99.

WORKING-STORAGE SECTION.01 ARE-THERE-MORE-RECORDS PIC XXX VALUE ‘YES’. <Value clause>

Page 25: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

25

PROCEDURE DIVISION. <instructions to operate (read. print) / manipulate data>100-MAIN-MODULE.

OPEN INPUT EMPLOYEE-DATA <must have for files>OUTPUT PAYROLL-LISTING.

PERFORM UNTIL ARE-THERE-MORE-RECORDS = ‘NO’ <loop construct>READ EMPLOYEE-DATA <note the indentation!!!>

AT ENDMOVE ‘NO’ TO ARE-THERE-MORE-RECORDS

NOT AT ENDPERFORM 200-WAGE-ROUTINE

END-READ <note the ‘control’ here – not detail!>END-PERFORM <note: scope terminators end-read; end-perform>CLOSE EMPLOYEE-DATA

PAYROLL-LISTINGSTOP RUN. <last logical executable statement in program>

200-WAGE-ROUTINE.MOVE SPACES TO PRINT-RECMOVE EMPLOYEE-NAME-IN TO NAME-OUTMOVE HOURS-WORKED-IN TO HOURS-OUTMOVE HOURLY-RATE-IN TO RATE-OUTMULTIPLY HOURS-WORKED-IN BY HOURLY-RATE-IN

GIVING WEEKLY-WAGES-OUTWRITE PRINT-REC.

OBSERVE INPUT AND OUTPUT ON P. 24.

Page 26: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

26

100-MAIN-MODULE

OPENs files to be used by program Repeatedly READs in records (PERFORM …

END-PERFORM) until there are no more Calls second paragraph 200-WAGE-

ROUTINE to process each record CLOSEs files after all records read Ends program (STOP RUN)

Page 27: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

27

READ Statement

Reads one record into program storage area Record must be in storage to use it

Entire record ‘read into’ the Process Area (the 01 area)

Takes one of two actions depending on whether record was read

Page 28: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

28

READ Statement - 1

PERFORM instruction after NOT AT END executed when a successful read occurs:

Statements in paragraph 200-WAGE-ROUTINE executed to process record

Control remains within the Perform. Condition is evaluated and is false, so the loop iterates.

Page 29: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

29

READ Statement - 2

If no more records are available, MOVE instruction after AT END executed 'NO ' moved to ARE-THERE-MORE-

RECORDS, ends loop Control returns to the Perform which

determines that the condition is now True and control passes to the statement following the Perform.

Page 30: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

30

200-WAGE-ROUTINE

First MOVE initializes PRINT-REC to blanks Then MOVEs name, hours, wages to output

fields Calculates WAGES with MULTIPLY

statement, MOVES it to output field WRITEs data in employee output record to

print file

Page 31: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

31

Entering & Running a Program

To type in and run a COBOL program on your computer system, you need to know how to:

Log on and off of the computer Name COBOL files on the computer Use a text editor to key in, modify and save files Compile a COBOL source program to translate it into machine

language Link or load the object program Run the object program

Page 32: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

32

COMMENTS 1

Interactive Programs don’t need Environment Division

Batch Programs Need all four divisions – in order Environment Division names / associates files

with devices. machine / implementation dependent. Assign to clauses will differ (will inform you…)

Page 33: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

33

COMMENTS 2 Data Division

will always have a File Section describes the file in general and the records with their

fields in particular. Provides the sizes and classification of fields and

relative placement of data in input and output records

All data fields are named! (Constants {later} are treated separately) All fields must be defined with their sizes and type of data expected.

Name files with meaningful names.

Page 34: 1 Interactive vs Batch Programs Cobol suited for developing both types of programs Interactive programs Accept input data from keyboard Input data processed.

34

COMMENTS 3 Filler – reserved word

Many reserved words – have special meanings. ARE-THERE-MORE-RECORDS is really a flag

field. I prefer EOF. Will discuss more later. types of data:

numeric pic 9 alphanumeric pic x (non-numeric) alphabetic pic A (not used much anymore).

Data name rules – later Editing characters (decimals, commas…) later.