st
11th edition
John Wiley & Sons, Inc .
Hofstra University
Nassau Community College
University of Wisconsin-Stout
(Emeritus)
1-1
Chapter 1
1-2
To familiarize you with
• Why COBOL is a popular businessoriented language.
• Programming practices and techniques
• History of COBOL
• Use of the current ANSI standard versions of COBOL
• Four divisions of a COBOL program
1-3
• Computer Programming: An Overview
• Applications Program Development
Process
• Nature of COBOL
• History of COBOL and the ANS
Versions
1-4
• Techniques for Improving Program
Design
• Sample Programs
• Entering and Running a COBOL
Program on Your Computer
1-5
• A set of instructions that enables computer to process data
• Also called software
• Two types of computer programs
– Operating system programs - control overall operations of computer
– Applications programs - perform tasks required by users
1-6
• Written by applications programmer
• May provide quick solution to one-time problem
– Displaying average grade for set of exam scores
• Or may be run on regularly scheduled basis
– Program to print student transcripts each semester
1-7
• Written for specific users like doctors, car dealerships
• Necessary if user has special requirements
1-8
• Written for general user who needs program to perform standard tasks
• Standard tasks include budgeting, scheduling payroll, etc.
• Cheaper, easier than writing customized program
1-9
Machine language
• Only language computer understands
• All programs executed on computer must be in machine language
• Machine language programs difficult to write
1-10
Symbolic language (like COBOL)
• English-like languages used to write programs
• Easier than writing programs in machine language
• Must be translated or compiled into machine language to run on computer
1-11
1. Determine Program Specifications
2. Design Program Using Program
Planning Tools
3. Code and Enter Program
4. Compile Program
5. Test Program
6. Document Program
1-12
• Systems analysts, users and programmers develop specifications
• Specifications include:
• Description of input and output data
• Step-by-step processing required to convert input to output
1-13
– when a company decides to computerize a business application, a system analyst is assigned the task of designing the entire computerized application.
– This system analyst works closely with users to determine such factors as output needs, how many program are required, and input requirements.
Structured COBOL Programming,
Stern & Stern, 9th edition
• When a system analyst decides what customized programs are required, he prepares program specifications to be given to programmers so that they can perform their task.
Structured COBOL Programming,
Stern & Stern, 9th edition
Program Specifications consist of the following:
• Record layout forms to describe the input and output
• Printer spacing charts for printed output
Structured COBOL Programming,
Stern & Stern, 9th edition
Record layout forms describe format of input and output data
• Data names of each data item in record
• Location of each data item in record
• Size of each data item
• Number of decimal positions (for numeric data items)
1-17
Code EmpNo RegHr OvertimeHr HourlyRate
Field code empNo regHr overtimeHr hourlyRate
Size Data
Type
4
4
2
5
4
Numeric
Numeric
Numeric
Numeric
Numeric
No. of
Decimal position
2
2
0
0
2
Structured COBOL Programming,
Stern & Stern, 9th edition
Printer spacing charts describe
• Spacing
• Layout of printed output
• Heading, detail, total lines
• Error messages
1-19
• Headings are usually printed that contain report and page titles, dates, page numbers, and so on.
• Data must be spaced neatly across the page, allowing for margins.
• Sometime s additional lines for error messages or total are required.
Structured COBOL Programming,
Stern & Stern, 9th edition
Structured COBOL Programming,
Stern & Stern, 9th edition
Structured COBOL Programming,
Stern & Stern, 9th edition
Program planning tools used to map out structure and logic of program
• Flowcharts use block diagrams to represent logic
• Pseudocode uses English-like statements
• Hierarchy charts show relationships among sections of program
1-23
• Programmer writes and enters program into computer
• Program written in symbolic language
(like COBOL)
• Called source program
1-24
Compiler is program that
• Checks source program for rule violations
• Translates source program into object program
Source program in symbolic language
Translated by compiler
Object program in machine language
1-25
• Test or debug program to ensure it contains no errors
• Check for two types of errors
– Compile-Time Errors
– Execution Errors
1-26
• Errors detected by compiler during translation from COBOL to machine language
• Detects violations of programming rules
– Misspelled reserved words
– Missing punctuation
• Also called syntax errors
1-27
• Detected when program is run
• Logic error causes incorrect output
– Sequence of instructions incorrect
– Wrong instruction coded
• Run-time error if computer cannot execute instruction
– Attempt to divide by zero
– Attempt to read a file that cannot be found
1-28
• Desk checking
• Correcting syntax errors
• Program walkthroughs
• Executing the program
1-29
• Desk Checking
– Reviewing the program before and after keying
– Desk checking will minimize the overall time it takes to debug a program.
– Omitting desk checking phase can result in undetected logic errors that could take hours or even days to debug later on.
– Experienced programmers carefully review their programs before and after
Stern & Stern, 9th edition
• Correcting Syntax Errors
– After a program has been translated or compiled, the computer will print a source listing aling diagnostic messages to point any rule violations or syntax errors.
– Using the printed source list of the diagnostic messages to find and correct the errors
– The programmer must then correct the errors and recompile the program before it can be run with test data.
Structured COBOL Programming,
Stern & Stern, 9th edition
• Program Walkthroughs
– After a program has been successfully compiled, manually stepping through the program with test data to see if it will produce the desired results.
– Walkthroughs can help the programmer find logic and run-time errors more easily.
– Walkthroughs may be performs directly from pseudocode, even prior to the actual coding.
• .
Structured COBOL Programming,
Stern & Stern, 9th edition
• Detecting Logic Errors by Executing the Program
– Often the most difficult and timeconsuming part of debugging.
– The preparation of test data is an extremely critical aspect of debugging.
– The programmer should prepare data that will test every possible condition the program is likely encounter.
Structured COBOL Programming,
Stern & Stern, 9th edition
• Documentation - formal set of procedures and instructions to specify how to use program
• Written for
– Those working with output
– Computer operators who run program
– Maintenance programmers who make modifications to program
1-34
• Business-oriented language
• Standard language
• English-like language
• Relatively easy to understand
• COBOL is an abbreviation for CO mmon
B usiness O riented L anguage
1-35
• Developed in 1959 as standard language to meet needs of business
• Committee to develop language convened by Department of Defense
• Included representatives from academia, business, computer manufacturers
1-36
• 1960s
• 1968
wide variations in COBOL compilers
first COBOL standard set by
American National Standards
Institute (ANSI)
• 1974
• 1985
second ANSI standard to make
COBOL more efficient, standardized
this ANSI standard incorporated structured programming techniques
1-37
• 1985 currently the most widely used
• 2008 is next standard
– Approval expected in 2008 or so
– Information on 2008 COBOL standard at http://www.ansi.org
1-38
Likely to remain important language
• Older COBOL programs need to be updated
• Still used by many for new program development
1-39
• About 200 billion lines of COBOL source code in use
• 5 billion new lines added each year
• Used by 42.7% of application programmers in medium to large U.S. companies
• $200 million in expected revenues for
2001
1-40
• Year stored as two digits in older programs to save space
• 19 assumed as valid prefix for all years
– 95 represented year 1995
• Invalid as prefix for years 2000 and beyond
– 00 could mean 1900 or 2000
1-41
Many calculations with dates incorrect starting in 2000
• To find your age if you were born in
1970
Subtract 70 from 95 (95 - 70 = 25)
• Calculation incorrect for year 2000 and beyond
00 - 70 = -70 when age should be 30
1-42
To correct problem
• Billions of lines of code, many written in
COBOL needed to be examined
• Code changed to use four digits for year
• Age, other calculations now correct
1995 - 1970 = 25
2000 - 1970 = 30
1-43
Two techniques used to develop programs that are easier to understand, test, debug and modify
• Structured Programming
• Top-Down Programming
1-44
• Eliminates use of GO TO statements
– Allowed skipping to different sections of program without returning to starting point
• Program logic easier to follow with "GO-
TO-less" programming
1-45
Program divided into paragraphs
• Main paragraph or module controls logic flow using PERFORM statements
• Main module "performs" other modules when instructions in that module required
• Each module can be written and tested independently of others
1-46
• Another technique to make programs easier to understand, test, debug and modify
• Develop program like term paper
– Develop outline first
– Add details for each of main steps
– Add further refinement for more complex steps
1-47
For COBOL program
• Code main modules or routines first
• Code intermediate modules next
• Details deferred to minor modules and coded last
1-48
• 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-49
Batch programs
• Process large volumes of input at periodic intervals
• Input data read in from files
• Output written to files
1-50
• Every COBOL program contains up to four separate divisions in the following order:
1-51
• 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
1-52
• 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
1-53
• Purpose
– to compute employee WAGES
• Input from keyboard
– HOURS and RATE
• Processing
– compute WAGES as HOURS x RATE
• Output displayed on screen
– WAGES
1-54
1-55
• 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
1-56
• Keyed input fields (HOURS, RATE)
• Output fields (WAGES)
• Other fields used for processing
(MORE-DATA)
1-57
• 01 level begins definition of each field
• PICTURE or PIC clause describes
– Type of data
• Numeric (PIC 9)
• Nonnumeric (PIC X)
– Size of field - determined by number of 9’s or X’s
1-58
• 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
1-59
• 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
1-60
• Set of instructions to be executed by program
• Organization of instructions planned before coding begins
• Pseudocode, an English-like description of program instructions, used for planning
• Describes program logic and order in which instructions will be executed
1-61
• PROCEDURE DIVISION includes one paragraph 100-MAIN
• List of instructions that follow make up paragraph
• Period follows last statement in paragraph (STOP RUN.)
• Main processing controlled by
PERFORM … END-PERFORM loop
1-62
• 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
1-63
• When user enters NO as response
– MORE-DATA set to "NO" and loop ends
• After loop, STOP RUN is executed, ending program
1-64
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
1-65
• In batch mode, data comes from input file instead of keyboard
• Data for each employee stored in a record in file on disk
• Employee name, hours and rate data called fields
1-66
• Calculated results (Wages) stored in file instead of displayed on screen
• 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
1-67
• All four divisions included for batch programs
• IDENTIFICATION DIVISION first with required PROGRAM-ID paragraph
• ENVIRONMENT DIVISION
– INPUT-OUTPUT SECTION assigns input and output files to specific devices
1-68
• FILE SECTION describes format of input and output files
• 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
1-69
• Contains instructions to be executed by computer
• Instructions executed in order they appear
• Includes two paragraphs with period at end of each
1-70
• 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)
1-71
• Reads one record into program storage area
• Record must be in storage to use it
• Takes one of two actions depending on whether record was read
1-72
• PERFORM instruction after NOT AT
END executed when record read
– Statements in paragraph 200-WAGE-
ROUTINE executed to process record
• If no more records to be read, MOVE instruction after AT END executed
– 'NO ' moved to ARE-THERE-MORE-
RECORDS, ends loop
1-73
• 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
1-74
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
1-75
• The Nature of COBOL
– English-like language
– Used widely for business programming
– With new standard coming out soon, it is likely to remain important language
1-76
• Use planning tools and good design techniques to improve program design
• Document programs well
• Carefully test and debug programs
1-77
COBOL programs divided into four divisions
• IDENTIFICATION DIVISION identifies program to operating system
• ENVIRONMENT DIVISION required for batch programs that operate on files
1-78
• DATA DIVISION defines formats for all input, output and work areas needed
– FILE SECTION required for batch programs that operate on files
– WORKING-STORAGE SECTION for work fields or fields used in interactive programs
1-79
• PROCEDURE DIVISION
– Contains instructions to process input and produce output
– Divided into paragraphs or modules
1-80
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.
1-81