Interactive vs Batch Programs
Download
Report
Transcript Interactive vs Batch Programs
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
1
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.
2
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
3
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
4
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
5
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
6
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
7
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
8
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)
9
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.
10
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
11
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.
12
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
13
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
14
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!
15
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
16
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!)
17
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
18
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
19
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)
20
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 …
21
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
22
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…
23
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.
24
01
ARE-THERE-MORE-RECORDS
PIC XXX VALUE ‘YES’. <Value clause>
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 END
MOVE ‘NO’ TO ARE-THERE-MORE-RECORDS
NOT AT END
PERFORM 200-WAGE-ROUTINE
END-READ
<note the ‘control’ here – not detail!>
END-PERFORM
<note: scope terminators end-read; end-perform>
CLOSE EMPLOYEE-DATA
PAYROLL-LISTING
STOP RUN.
<last logical executable statement in program>
200-WAGE-ROUTINE.
MOVE SPACES TO PRINT-REC
MOVE EMPLOYEE-NAME-IN TO NAME-OUT
MOVE HOURS-WORKED-IN TO HOURS-OUT
MOVE HOURLY-RATE-IN TO RATE-OUT
MULTIPLY HOURS-WORKED-IN BY HOURLY-RATE-IN
GIVING WEEKLY-WAGES-OUT
WRITE PRINT-REC.
OBSERVE INPUT AND OUTPUT ON P. 24.
25
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-WAGEROUTINE to process each record
CLOSEs files after all records read
Ends program (STOP RUN)
26
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
27
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.
28
READ Statement - 2
If no more records are available, MOVE
instruction after AT END executed
'NO ' moved to ARE-THERE-MORERECORDS, ends loop
Control returns to the Perform which
determines that the condition is now True and
control passes to the statement following the
Perform.
29
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
30
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
31
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…)
32
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.
33
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.
34