0% found this document useful (0 votes)
103 views52 pages

Structured COBOL Programming: Nancy Stern Robert A. Stern James P. Ley

Uploaded by

Rupesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views52 pages

Structured COBOL Programming: Nancy Stern Robert A. Stern James P. Ley

Uploaded by

Rupesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 52

Structured COBOL Programming

10th edition John Wiley & Sons, Inc.

Nancy Stern
Hofstra University
Robert A. Stern
Nassau Community College
James P. Ley
University of Wisconsin-Stout

PowerPoint Winifred J. Rex


Presentation Bowling Green State University 14-1
Chapter 14

Sorting and Merging

14-2
Chapter Objectives
• To familiarize you with
• How files may be sorted
• How to process file during SORT
procedure
– Before it is sorted
– After it is sorted
• How to merge files

14-3
Chapter Contents
• SORT Feature
• Processing Data Before and/or After
Sorting
• MERGE Statement

14-4
SORT Statement
• Common procedure for arranging
records in specific order
• Then sequential batch processing
performed
• Two techniques for sorting
– Use sort utility separate from COBOL
program
– Use COBOL's SORT verb in program

14-5
SORT Statement
Simplified Format

SORT file-name-1
ON ASCENDING KEY data-name-1 …
DESCENDING

USING file-name-2
GIVING file-name-3
14-6
ASCENDING, DESCENDING Key
• To specify sequence for key field
– ASCENDING: From lowest to highest
– DESCENDING: From highest to lowest
• Sort key fields may be numeric or
nonnumeric
• Alphanumeric fields sorted according to
collating sequence (ASCII or EBCDIC)
used by computer
14-7
Multiple Sort Keys
• Can sequence records with more than
one key field
• Sort payroll file in ascending alphabetic
sequence by name, within each level,
for each office
– Office number - major sort field
– Level number - intermediate sort field
– Name - minor sort field

14-8
Multiple Sort Keys
• For Office 1, desired sequence is
Office-No Level-No Name
1 1 ADAMS, J. R.
1 1 BROCK, P. T.
1 1 LEE, S.
1 2 ARTHUR, Q. C.
1 2 SHAH, J.
1 3 RAMIREZ, A. P.
14-9
SORT Statement
• Sorts records into ascending name
sequence within level within office
Sort Sort-File
On Ascending Key Office-No
On Ascending Key Level-No
On Ascending Key Name
Using Payroll-File-In
Giving Sort-Payroll-File-Out
14-10
Multiple Sort Keys
• Choose either ASCENDING or
DESCENDING sequence for each key
• If all key fields to be sorted in same
sequence, can condense coding
Example
Sort Sort-File
On Ascending Key Major-Key
Intermediate-Key
Minor-Key
14-11
Duplicate Key Values
• Assume records to be sorted in
descending order by salary
• If both 9th and 24th records in input file
have salary of 30000, which appears first
in sort file?
• Can specify that records with same value
for key field be placed in sort file in same
order that they appear in original input file

14-12
Duplicate Key Example
Sort Sort-File
On Descending Key Srt-Salary
With Duplicates In Order
Using Unsorted-File-In
Giving Sorted-File-Out

• DUPLICATES clause ensures that 9th


record appears before 24th in Sort-File if
both have same Salary value
14-13
Files Used in SORT
• Input file: File of unsorted input records
• Work or sort file: File used to store
records temporarily during sorting
process
• Output file: File of sorted output records

14-14
Files Used in SORT
• All defined using standard SELECT …
ASSIGN entries
• All must have same record format
• All are opened and closed automatically
by SORT

14-15
Files Used in SORT
• Input and output file described with FD
entries
• Sort work file
– Described with SD entry (sort file
descriptor)
– Temporary file used only during sorting but
not saved
– Sort key fields must be described as part of
sort record format
14-16
Sample FILE SECTION
Data Division.
File Section.
FD Unsorted-File-In.
01 Unsorted-Rec-In.
05 Name-In Pic X(20).
05 Salary-In Pic 9(6).

14-17
Sample FILE SECTION
SD Sort-File.
01 Sort-Rec.
05 Srt-Name Pic X(20).
05 Srt-SalaryPic 9(6).
FD Sorted-File-Out.
01 Sorted-Rec-Out.
05 Name-Out Pic X(20).
05 Salary-Out Pic 9(6).
14-18
Operations Performed by SORT
• Opens all three files
• Moves all records from Unsorted-File-In
to Sort-File
• Sorts records in Sort-File in descending
sequence by Srt-Salary
• Moves all records from Sort-File to
Unsorted-File-Out
• Closes all three files
14-19
INPUT PROCEDURE
• Use in place of USING clause to
process data from input file prior to
sorting
• Assume only records with Salary-In <
75000 need to be sorted
• Use Input Procedure to process and
select desired records before sorting

14-20
SORT with INPUT PROCEDURE
Sort Sort-File
On Descending Key Srt-Salary
Input Procedure Select-Records
Giving Sorted-File-Out

• Select-Records is name of paragraph


written by programmer to process
records before sorting
14-21
INPUT PROCEDURE
Select-Records paragraph must
• Open input file (Unsorted-File-In)
• Perform processing of input records
until there is no more data
• Close input file

14-22
Processing Input Records
• For each input record, if Salary-In <
75000
– Move input data to sort record
– RELEASE record to sort file
• When INPUT PROCEDURE paragraph
is completed, control returns to SORT
• All records released to sort file are
sorted
14-23
RELEASE Statement
Format

RELEASE sort-record-name-1
[FROM identifier-1]

• To write a record to the sort file


• Like WRITE but used to output sort
records

14-24
INPUT PROCEDURE
May be used to
• Validate data in input records
• Process only records that meet certain
criteria
• Eliminate records with blank fields
• Remove unneeded fields from input
records
• Count input records
14-25
OUTPUT PROCEDURE
• With GIVING option, records in sort file
automatically written to output file after
sorting
• Use OUTPUT PROCEDURE to process
sorted records prior to, or instead of,
placing them in output file

14-26
SORT Statement Format
SORT file-name-1
ON ASCENDING KEY data-name-1 … …
DESCENDING

INPUT PROCEDURE IS procedure-name-1


USING file-name-2 …

OUTPUT PROCEDURE IS procedure-name-3


GIVING file-name-3 …
14-27
SORT PROCEDURES
• If INPUT PROCEDURE used
– SORT transfers control to paragraph or
section named in INPUT PROCEDURE
– When complete, sort file is sorted
• If OUTPUT PROCEDURE used
– SORT transfers control to paragraph or
section named in OUTPUT PROCEDURE
– Processes all sorted records in sort file and
handles transfer of records to output file
14-28
SORT PROCEDURES
• In INPUT PROCEDURE, records
RELEASEd to sort file
• In OUTPUT PROCEDURE, records
RETURNed from sort file

14-29
RETURN Statement
Format

RETURN sort-file-name-1
AT END imperative statement-1
[ NOT AT END imperative statement-2]
[END-RETURN]

• To retrieve records from the sort file


• Similar to READ
14-30
OUTPUT PROCEDURE Steps
Paragraph (or section) must
• Open output file
• Perform paragraph to RETURN and
process records from sort file until there
is no more data
• Close output file
• When OUTPUT PROCEDURE finished,
control returns to SORT
14-31
Processing Sorted Records
After records sorted but before they are
created as output
• Perform any operations on sort records
• MOVE sort record to output area
• WRITE each sort record to output file

14-32
SORT Procedures
• Both INPUT and OUTPUT
PROCEDUREs can be used in same
program
• If used, programmer must open/close
the input or output file
• SD (sort) file and files specified with
USING or GIVING are automatically
opened and closed
14-33
When to use PROCEDUREs
• More efficient to use INPUT
PROCEDURE if many records in input
file can be eliminated before sort
• Use OUTPUT PROCEDURE if records
require further processing after sort
• Must use procedure if input or output file
and sorted file have different-sized
fields or fields in different order
14-34
SORT Options Review
Option: USING
GIVING
Result:
• File is sorted
• No special handling

14-35
SORT Options Review
Option: INPUT PROCEDURE
GIVING
Result:
• Processes unsorted input records before
they are sorted
• Write records to sort file with RELEASE
• After INPUT PROCEDURE completed,
records are sorted
14-36
SORT Options Review
Option: USING
OUTPUT PROCEDURE
Result:
• Processes records after they have been
sorted but before they are written to
output file
• Read records from sort file with
RETURN
14-37
SORT Options Review
Option: INPUT PROCEDURE
OUTPUT PROCEDURE
Result:
• Processes data both before and after it
is sorted

14-38
MERGE Statement
• To combine two or more files into one
• Files to be merged must each be in
sequence by key field
• Format similar to SORT, rules for
clauses are same

14-39
MERGE Statement Format
MERGE file-name-1
ON ASCENDING KEY data-name-1 … …
DESCENDING
USING file-name-2 file-name-3 …

OUTPUT PROCEDURE IS procedure-name-1


GIVING file-name-4 …

• To combine two or more files into one


14-40
MERGE Statement
• File-name-1 is work file designated as
an SD
• Keys specified are defined within SD
• Data-name-1 is major key, may be
followed by intermediate and minor keys
• USING clause names file to be merged
– At least two must be included

14-41
MERGE Statement
• Records may be processed after
merging with OUTPUT PROCEDURE,
but not before
• Automatically handles opening, closing,
and input/output associated with files

14-42
MERGE Statement Example
• Suppose two separate files of
employees are to be combined into one
• Both input files and the resulting output
file contain 80 characters with an Emp-
No in the first nine positions
• File definitions and MERGE instruction
follow

14-43
MERGE Statement Example
Data Division.
File Section.
FD Emp-File-1.
01 Emp-Rec-1 Pic X(80).

FD Emp-File-2.
01 Emp-Rec-2 Pic X(80).
14-44
MERGE Statement Example
SD Merge-File.
• 01 Merge-Rec.
• 05 Mrg-Emp-No Pic X(9).
• 05 Rest-of-Rec Pic X(71).

FD Out-Emp-File.
01 Out-Emp-Rec Pic X(80).
14-45
MERGE Statement Example
Procedure Division.
100-Main-Module.
Merge Merge-File
On Ascending Key Mrg-Emp-No
Using Emp-File-1, Emp-File-2
Giving Out-Emp-File
Stop Run.
14-46
Chapter Summary
• SORT used for sorting records in either
ascending or descending order
• SORT uses work or sort file described
with an SD
• Key fields to be sorted are data-names
defined within SD or sort file
• Files may be sorted using more than
one key field
14-47
Chapter Summary
• Routines separate from SORT may be
used to
– Process unsorted file prior to SORT
– Process sorted file after SORT

14-48
Chapter Summary
• Procedures that are part of SORT
permit processing
– Just before sort performed (INPUT
PROCEDURE)
– After sort finished but before writing
records to sorted file (OUTPUT
PROCEDURE)

14-49
Chapter Summary
• RELEASE statement used in INPUT
PROCEDURE to make input records
available for sorting
• RETURN statement used in OUTPUT
PROCEDURE to read records from sort
file

14-50
Chapter Summary
• MERGE statement used to merge two
or more files into one

14-51
Copyright © 2003 John Wiley & Sons, Inc. All rights reserved.
Reproduction or translation of this work beyond that permitted in Section
117 of the 1976 United States Copyright Act without the express written
permission of the copyright owner is unlawful. Request for further
information should be addressed to the Permissions Department, John
Wiley & Sons, Inc. The purchaser may make back-up copies for his/her
own use only and not for distribution or resale. The Publisher assumes no
responsibility for errors, omissions, or damages, caused by the use of these
programs or from the use of the information contained herein.

14-52

You might also like