Escolar Documentos
Profissional Documentos
Cultura Documentos
PL
ANSI-COBOL 6.50
USERS MANUAL
COPYWRITE 1990
INTRODUCTION
LIMITIATIONS
INTRODUCTION
Computer Systems
Hardware
Software
System's Software
Programs
Pseudo Code
FIGURE 1.1
______________________________________________________________
: :
: ACCEPT first operator-entered number into memory. :
: ACCEPT second operator-entered number into memory. :
: ADD first number TO, second number GIVING result-field. :
: DISPLAY result-field. :
:______________________________________________________________:
Developing Applications
Introduction
General Characteristics
Components of COBOL
STATEMENTS
______________________________________________________________________________
1234567890123456789012345678901234567890123456789012345678901234567890123456789
0
EXAMPLE 3.1
_______________________________________________________________________________
Sentence
______________________________________________________________________________
1234567890123456789012345678901234567890123456789012345678901234567890123456789
0
EXAMPLE 3.2
_______________________________________________________________________________
Clause
______________________________________________________________________________
1234567890123456789012345678901234567890123456789012345678901234567890123456789
0
EXAMPLE 3.3
______________________________________________________________________________
Paragraph
______________________________________________________________________________
1234567890123456789012345678901234567890123456789012345678901234567890123456789
0
*
*
C060-PRINT-CELLS-REPORT-DETAIL.
MULTIPLY W010-NUMBER-OF-HOURS BY W030-HOURLY-RATE
GIVING W020-WEEK-GROSS-PAY
ROUNDED.
EXAMPLE 3.4
______________________________________________________________________________
Section
______________________________________________________________________________
1234567890123456789012345678901234567890123456789012345678901234567890123456789
0
*
*
C000-PRINT-CELLS-REPORT SECTION.
*
C060-PRINT-CELLS-REPORT-DETAIL.
MULTIPLY W010-NUMBER-OF-HOURS BY W030-HOURLY-RATE
GIVING W020-WEEK-GROSS-PAY
ROUNDED.
EXAMPLE 3.5
______________________________________________________________________________
STATEMENT FORMAT
IDENTIFICATION DIVISION.
*
PROGRAM-ID. EXMP36.
*
***********************************************************
* DATE-WRITTEN. 08/13/90. *
***********************************************************
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
WORKING-STORAGE SECTION.
01 HELLO-WORLD PIC X(20)
VALUE "Hello world".
*
PROCEDURE DIVISION.
*
DISPLAY HELLO-WORLD.
STOP RUN.
EXAMPLE 3.6
______________________________________________________________________________
Types of Words
1) data names,
2) files names,
3) condition names,
4) procedure names.
Reserved Words
Data Format
Records
Files
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG401.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE CONSOLE DISPLAY *
10 * A MESSAGE ENTERED BY THE OPERATOR. *
11 * *
12 ***************************************************
13 *
14 *
15 ENVIRONMENT DIVISION.
16 *
17 *
18 DATA DIVISION.
19 *
20 *
21 ****************************************************
22 * *
23 WORKING-STORAGE SECTION.
24 * *
25 ****************************************************
26 *
27 *
28 01 W005-MESSAGE-FIELD PIC X(32).
29 *
30 *
31 PROCEDURE DIVISION.
32 *
33 DISPLAY-ACCEPTED-MESSAGE.
34 ACCEPT W005-MESSAGE-FIELD.
35 DISPLAY W005-MESSAGE-FIELD.
36 STOP RUN.
--------------------------------------------------------
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG402.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A MESSAGE ENTERED BY THE OPERATOR. *
11 * *
12 ***************************************************
13 *
14 *
15 ENVIRONMENT DIVISION.
16 *
17 CONFIGURATION SECTION.
18 *
19 SPECIAL-NAMES.
20 *
21 PRINTER IS PRINTER-DISPLAY.
22 *
23 *
24 DATA DIVISION.
25 *
26 *
27 ****************************************************
28 * *
29 WORKING-STORAGE SECTION.
30 * *
31 ****************************************************
32 *
33 *
34 01 W005-MESSAGE-FIELD PIC X(32).
35 *
36 *
37 PROCEDURE DIVISION.
38 *
39 DISPLAY-ACCEPTED-MESSAGE.
40 DISPLAY "PROGRAM PROG402: PRINT DISPLAY OUTPUT:"
41 UPON PRINTER-DISPLAY.
42 ACCEPT W005-MESSAGE-FIELD.
43 DISPLAY W005-MESSAGE-FIELD UPON PRINTER-DISPLAY.
44 STOP RUN.
--------------------------------------------------------
EXAMPLE 4.3
The MOVE verb moves data to a data field. The data may
be a literal specified in the statement or another data
field. The program is shown in fig. 4.4. The reader
should look at lines 38 and 40. These are the fields
involved in the MOVE statements in lines 49 and 50. The
operator will enter the data into the field "W005-
ACCEPT-MESSAGE-FIELD" and this is moved to the field
"W005-DISPLAY-MESSAGE-FIELD". The rest are the same as
in PROG402. The result is shown in fig.4.5.
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG404.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A MESSAGE ENTERED BY THE OPERATOR. *
11 * *
12 * 3. THE MESSAGE IS INITIALLY ENTERED INTO ONE *
13 * WHICH IS THEN MOVED TO ANOTHER FIELD BEFORE *
14 * BEING PRINTED ON THE PRINTER. *
15 * *
16 ***************************************************
17 *
18 *
19 ENVIRONMENT DIVISION.
20 *
21 CONFIGURATION SECTION.
22 *
23 SPECIAL-NAMES.
24 *
25 PRINTER IS PRINTER-DISPLAY.
26 *
27 *
28 DATA DIVISION.
29 *
30 *
31 ****************************************************
32 * *
33 WORKING-STORAGE SECTION.
34 * *
35 ****************************************************
36 *
37 *
38 01 W005-ACCEPT-MESSAGE-FIELD PIC X(32).
39 *
40 01 W005-DISPLAY-MESSAGE-FIELD PIC X(32).
41 *
42 *
43 PROCEDURE DIVISION.
44 *
45 DISPLAY-ACCEPTED-MESSAGE.
46 DISPLAY "PROGRAM PROG404: PRINT DISPLAY OUTPUT:"
47 UPON PRINTER-DISPLAY.
48 ACCEPT W005-ACCEPT-MESSAGE-FIELD.
49 MOVE W005-ACCEPT-MESSAGE-FIELD
50 TO W005-DISPLAY-MESSAGE-FIELD.
51 DISPLAY W005-DISPLAY-MESSAGE-FIELD
52 UPON PRINTER-DISPLAY.
53 STOP RUN.
--------------------------------------------------------
EXAMPLE 4.5
The ADD verb adds two numbers and as options rounds off
the sum, checks it for overflow, or places it into a
specific field. Here, we will take up the most basic
version of the statement where we add two numbers
(contained in the two operands) and the sum is placed in
the second operand and thus replaces its original value.
The program is fig.4.6. Lines 34 and 36 specify the
operands to be used and their respective values. Line
42 does the ADD operation. The result is fig.4.7.
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG406.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A VALUE COMPUTED FROM AN ADD OPERATION. *
11 * *
12 ***************************************************
13 *
14 *
15 ENVIRONMENT DIVISION.
16 *
17 CONFIGURATION SECTION.
18 *
19 SPECIAL-NAMES.
20 *
21 PRINTER IS PRINTER-DISPLAY.
22 *
23 *
24 DATA DIVISION.
25 *
26 *
27 ****************************************************
28 * *
29 WORKING-STORAGE SECTION.
30 * *
31 ****************************************************
32 *
33 *
34 01 W005-FIRST-OPERAND PIC 9 VALUE 2.
35 *
36 01 W005-SECOND-OPERAND PIC 99 VALUE 12.
37 *
38 *
39 PROCEDURE DIVISION.
40 *
41 PRINT-COMPUTED-VALUE.
42 ADD W005-FIRST-OPERAND TO W005-SECOND-OPERAND.
43 DISPLAY "PROGRAM PROG406: THE SUM OF 2 + 12 IS:"
44 UPON PRINTER-DISPLAY.
45 DISPLAY W005-SECOND-OPERAND UPON PRINTER-DISPLAY.
46 STOP RUN.
---------------------------------------------------------
EXAMPLE 4.7
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG408.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A VALUE COMPUTED FROM A SUBTRACT OPERATION. *
11 * *
12 ***************************************************
13 *
14 *
15 ENVIRONMENT DIVISION.
16 *
17 CONFIGURATION SECTION.
18 *
19 SPECIAL-NAMES.
20 *
21 PRINTER IS PRINTER-DISPLAY.
22 *
23 *
24 DATA DIVISION.
25 *
26 *
27 ****************************************************
28 * *
29 WORKING-STORAGE SECTION.
30 * *
31 ****************************************************
32 *
33 *
34 01 W005-SUBTRAHEND PIC 9 VALUE 2.
35 *
36 01 W005-MINUEND PIC 99 VALUE 12.
37 *
38 *
39 PROCEDURE DIVISION.
40 *
41 PRINT-COMPUTED-VALUE.
42 SUBTRACT W005-SUBTRAHEND FROM W005-MINUEND.
43 DISPLAY "PROGRAM PROG408: THE RESULT OF 12 - 2 IS:"
44 UPON PRINTER-DISPLAY.
45 DISPLAY W005-MINUEND UPON PRINTER-DISPLAY.
46 STOP RUN.
--------------------------------------------------------
EXAMPLE 4.9
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG410.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A VALUE COMPUTED FROM A MULTIPLY OPERATION. *
11 * *
12 ***************************************************
13 *
14 *
15 ENVIRONMENT DIVISION.
16 *
17 CONFIGURATION SECTION.
18 *
19 SPECIAL-NAMES.
20 *
21 PRINTER IS PRINTER-DISPLAY.
22 *
23 *
24 DATA DIVISION.
25 *
26 *
27 ****************************************************
28 * *
29 WORKING-STORAGE SECTION.
30 * *
31 ****************************************************
32 *
33 *
34 01 W005-MULTIPLICAND PIC 9 VALUE 2.
35 *
36 01 W005-MULTIPLIER PIC 99 VALUE 12.
37 *
38 *
39 PROCEDURE DIVISION.
40 *
41 PRINT-COMPUTED-VALUE.
42 MULTIPLY W005-MULTIPLICAND BY W005-MULTIPLIER.
43 DISPLAY "PROGRAM PROG410: THE PRODUCT OF 2 * 12 IS:"
44 UPON PRINTER-DISPLAY.
45 DISPLAY W005-MULTIPLIER UPON PRINTER-DISPLAY.
46 STOP RUN.
---------------------------------------------------------
EXAMPLE 4.11
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG412.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A VALUE COMPUTED FROM A DIVIDE OPERATION. *
11 * *
12 ***************************************************
13 *
14 *
15 ENVIRONMENT DIVISION.
16 *
17 CONFIGURATION SECTION.
18 *
19 SPECIAL-NAMES.
20 *
21 PRINTER IS PRINTER-DISPLAY.
22 *
23 *
24 DATA DIVISION.
25 *
26 *
27 ****************************************************
28 * *
29 WORKING-STORAGE SECTION.
30 * *
31 ****************************************************
32 *
33 *
34 01 W005-DIVISOR PIC 9 VALUE 2.
35 *
36 01 W005-DIVIDEND PIC 99 VALUE 12.
37 *
38 *
39 PROCEDURE DIVISION.
40 *
41 PRINT-COMPUTED-VALUE.
42 DIVIDE W005-DIVISOR INTO W005-DIVIDEND.
43 DISPLAY "PROGRAM PROG412: THE QUOTIENT OF 12 / 2 IS:"
44 UPON PRINTER-DISPLAY.
45 DISPLAY W005-DIVIDEND UPON PRINTER-DISPLAY.
46 STOP RUN.
---------------------------------------------------------
EXAMPLE 4.13
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG414.
4 *
5 ***************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A VALUE COMPUTED FROM A DIVIDE OPERATION. *
11 * *
12 * 3. THE QUOTIENT IS PLACED INTO A DIFFERENT FIELD*
13 * *
14 ***************************************************
15 *
16 *
17 ENVIRONMENT DIVISION.
18 *
19 CONFIGURATION SECTION.
20 *
21 SPECIAL-NAMES.
22 *
23 PRINTER IS PRINTER-DISPLAY.
24 *
25 *
26 DATA DIVISION.
27 *
28 *
29 ****************************************************
30 * *
31 WORKING-STORAGE SECTION.
32 * *
33 ****************************************************
34 *
35 *
36 01 W005-DIVISOR PIC 9 VALUE 2.
37 *
38 01 W005-DIVIDEND PIC 99 VALUE 12.
39 *
40 01 W005-QUOTIENT PIC 9.
41 *
42 PROCEDURE DIVISION.
43 *
44 PRINT-COMPUTED-VALUE.
45 DIVIDE W005-DIVISOR INTO W005-DIVIDEND GIVING W005-QUOTIENT.
46 DISPLAY "PROGRAM PROG414: THE QUOTIENT OF 12 / 2 IS:"
47 UPON PRINTER-DISPLAY.
48 DISPLAY W005-QUOTIENT UPON PRINTER-DISPLAY.
49 STOP RUN.
---------------------------------------------------------
EXAMPLE 4.15
PROGRAM PROG414: THE QUOTIENT OF 12 / 2 IS:
6
---------------------------------------------------------
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG416.
4 *
5 *********************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/01/90. *
8 * *
9 * 2. THIS PROGRAM DISPLAYS ON THE PRINTER *
10 * A VALUE COMPUTED FROM A DIVIDE OPERATION. *
11 * *
12 * 3. THE QUOTIENT IS PLACED INTO A DIFFERENT FIELD *
13 * *
14 * 4. THE DIVIDE OPERATION AND DISPLAY WILL BE DONE TWICE*
15 * A) TRY #1 - QUOTIENT IS NOT ROUNDED OFF. *
16 * B) TRY #2 - QUOTIENT IS ROUNDED OFF. *
17 * *
18 *********************************************************
19 *
20 *
21 ENVIRONMENT DIVISION.
22 *
23 CONFIGURATION SECTION.
24 *
25 SPECIAL-NAMES.
26 *
27 PRINTER IS PRINTER-DISPLAY.
30 DATA DIVISION.
31 *
32 *
33 ****************************************************
34 * *
35 WORKING-STORAGE SECTION.
36 * *
37 ****************************************************
38 *
39 *
40 01 W005-DIVISOR PIC 9 VALUE 3.
41 *
42 01 W005-DIVIDEND PIC 9 VALUE 5.
43 *
44 01 W005-QUOTIENT PIC 9.
45 *
46 *
47 PROCEDURE DIVISION.
48 *
49 PRINT-COMPUTED-VALUE.
50 DIVIDE W005-DIVISOR INTO W005-DIVIDEND GIVING W005-QUOTIENT.
51 DISPLAY "PROGRAM PROG414: THE QUOTIENT OF 5 / 3 UNROUNDED IS
52 - ":" UPON PRINTER-DISPLAY.
53 DISPLAY W005-QUOTIENT UPON PRINTER-DISPLAY.
54 DIVIDE W005-DIVISOR INTO W005-DIVIDEND
55 GIVING W005-QUOTIENT ROUNDED.
56 DISPLAY "PROGRAM PROG414: THE QUOTIENT OF 5 / 3 ROUNDED IS:"
57 UPON PRINTER-DISPLAY.
58 DISPLAY W005-QUOTIENT UPON PRINTER-DISPLAY.
59 STOP RUN.
-----------------------------------------------------------
EXAMPLE 4.17
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG420.
4 *
5 ENVIRONMENT DIVISION.
6 *
7 CONFIGURATION SECTION.
8 *
9 SPECIAL-NAMES.
10 *
11 PRINTER IS PRINTER-DISPLAY.
12 *
14 DATA DIVISION.
15 *
16 *
17 WORKING-STORAGE SECTION.
18 *
19 01 W005-DIVISOR PIC 9 VALUE 2.
20 *
21 01 W005-DIVIDEND PIC 99 VALUE 12.
22 *
23 01 W005-QUOTIENT PIC 9.
24 *
25 *
26 PROCEDURE DIVISION.
27 *
28 MAIN-LINE-LOGIC.
29 PERFORM PRINT-COMPUTED-VALUE.
30 STOP RUN.
31 *
32 *
33 PRINT-COMPUTED-VALUE.
34 DIVIDE W005-DIVISOR INTO W005-DIVIDEND GIVING W005-QUOTIENT.
35 DISPLAY "12/2 IS".
36 DISPLAY W005-QUOTIENT.
---------------------------------------------------------
THE ON SIZE ERROR CLAUSE
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. CHAP422.
4 *
5 ENVIRONMENT DIVISION.
6 *
7 CONFIGURATION SECTION.
8 *
9 SPECIAL-NAMES.
10 *
11 PRINTER IS PRINTER-DISPLAY.
12 *
13 DATA DIVISION.
14 *
15 WORKING-STORAGE SECTION.
16 *
17 01 W005-DIVISOR PIC 9 VALUE 0.
18 *
19 01 W005-DIVIDEND PIC 99 VALUE 5.
20 *
21 01 W005-QUOTIENT PIC 9.
22 *
23 *
24 PROCEDURE DIVISION.
25 *
26 MAIN-LINE-LOGIC.
27 PERFORM PRINT-COMPUTED-VALUE.
28 STOP RUN.
29 *
30 *
31 PRINT-COMPUTED-VALUE.
32 DIVIDE W005-DIVISOR INTO W005-DIVIDEND GIVING W005-QUOTIENT
33 ON SIZE ERROR
34 DISPLAY "ON SIZE ERROR ENCOUNTERED"
35 DISPLAY "PROGRAM ABORTING"
36 STOP RUN.
37 DISPLAY "No On Size error".
38 DISPLAY "PROGRAM EXITING NORMALLY".
39 STOP RUN.
---------------------------------------------------------
THE GO TO STATEMENT
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. CHAP424.
4 *
5 ENVIRONMENT DIVISION.
6 *
7 CONFIGURATION SECTION.
8 *
9 SPECIAL-NAMES.
10 PRINTER IS PRINTER-DISPLAY.
11 *
12 *
13 DATA DIVISION.
14 *
15 WORKING-STORAGE SECTION.
16 *
17 01 W005-DIVISOR PIC 9 VALUE 0.
18 *
19 01 W005-DIVIDEND PIC 99 VALUE 5.
20 *
21 01 W005-QUOTIENT PIC 9.
22 *
23 *
24 PROCEDURE DIVISION.
25 *
26 MAIN-LINE-LOGIC.
27 GO TO PRINT-COMPUTED-VALUE.
28 *
29 *
30 PRINT-COMPUTED-VALUE.
31 DIVIDE W005-DIVISOR INTO W005-DIVIDEND GIVING W005-QUOTIENT
32 ON SIZE ERROR
33 DISPLAY "ON SIZE ERROR ENCOUNTERED"
34 DISPLAY "PROGRAM ABORTING"
35 STOP RUN.
36 DISPLAY "No On Size error".
37 DISPLAY "PROGRAM EXITING NORMALLY".
38 STOP RUN.
1 *
2 IDENTIFICATION DIVISION.
3 *
4 PROGRAM-ID. CHAP426.
5 *
6 ENVIRONMENT DIVISION.
7 *
8 CONFIGURATION SECTION.
9 *
10 SPECIAL-NAMES.
11 PRINTER IS PRINTER-DISPLAY.
12 *
13 *
14 DATA DIVISION.
15 *
16 WORKING-STORAGE SECTION.
17 *
18 *
19 01 W005-GROSS-PAY PIC 9(4)V99.
20 *
21 01 W005-BASE-PAY PIC 999V99 VALUE 500.
22 *
23 01 W005-WEEK-HOURS PIC 99V99 VALUE 39.5.
24 *
25 *
26 PROCEDURE DIVISION.
27 *
28 MAIN-LINE-LOGIC.
29 GO TO PRINT-COMPUTED-VALUE.
30 *
31 *
32 PRINT-COMPUTED-VALUE.
33 COMPUTE W005-GROSS-PAY ROUNDED =
34 W005-BASE-PAY * ( 1 + 1.5 * ( W005-WEEK-HOURS - 35 ) / 35 )
35 DISPLAY W005-GROSS-PAY.
36 COMPUTE W005-GROSS-PAY ROUNDED =
37 W005-BASE-PAY * ( 1 + ( 1.5 / 35 )
38 * ( W005-WEEK-HOURS - 35)).
39 DISPLAY W005-GROSS-PAY.
40 STOP RUN.
CHAPTER 5
INTRODUCTION
FILES
FILE ORGANIZATION
RECORDS
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG501.
4 *
5 DATE-WRITTEN. 08/13/90.
6 *
7 AUTHOR. BOB NOWECK.
8 *
9 SECURITY. NONE.
10 *
11 *
12 ENVIRONMENT DIVISION.
13 *
14 INPUT-OUTPUT SECTION.
15 *
16 FILE-CONTROL.
17 *
18 SELECT EMPLOYEE-ADDRESS-MASTER
19 ASSIGN TO DISK
20 ORGANIZATION IS LINE SEQUENTIAL.
21 *
22 SELECT EMPLOYEE-ADDRESS-PRINT
23 ASSIGN TO PRINTER.
24 *
25 *
26 DATA DIVISION.
27 *
28 FILE SECTION.
29 *
30 FD EMPLOYEE-ADDRESS-MASTER
31 LABEL RECORDS STANDARD
32 VALUE OF FILE-ID IS "FIOPRT.DAT".
33 01 EMPLOYEE-ADDRESS-MASTER-RECORD.
34 05 EMPLOYEE-ADDRESS-MASTER-NAME PIC X(30).
35 05 EMPLOYEE-ADDRESS-MASTER-STREET PIC X(30).
36 05 EMPLOYEE-ADDRESS-MASTER-CITY PIC X(30).
37 *
38 FD EMPLOYEE-ADDRESS-PRINT
39 LABEL RECORDS OMITTED.
40 01 EMPLOYEE-ADDRESS-PRINT-LINE PIC X(30).
41 *
42 *
43 WORKING-STORAGE SECTION.
44 *
45 01 W005-END-OF-FILE-SWITCH PIC X.
46 88 W005-END-OF-FILE VALUE "1".
47 01 W005-LINE-SKIP PIC 99.
48 *
49 PROCEDURE DIVISION.
50 *
51 C000-MAIN-LINE-LOGIC.
52 *
53 OPEN INPUT EMPLOYEE-ADDRESS-MASTER
54 OUTPUT EMPLOYEE-ADDRESS-PRINT.
55 MOVE "0" TO W005-END-OF-FILE-SWITCH.
56 PERFORM C060-READ-EMPLOYEE-MASTER.
57 PERFORM C020-PROCESS-EMPLOYEE-MASTER
58 UNTIL W005-END-OF-FILE.
59 CLOSE EMPLOYEE-ADDRESS-MASTER
60 EMPLOYEE-ADDRESS-PRINT.
61 STOP RUN.
62 *
63 C020-PROCESS-EMPLOYEE-MASTER.
64 *
65 MOVE EMPLOYEE-ADDRESS-MASTER-NAME
66 TO EMPLOYEE-ADDRESS-PRINT-LINE.
67 MOVE 3 TO W005-LINE-SKIP.
68 PERFORM C040-WRITE-DETAIL-LINE.
69 MOVE EMPLOYEE-ADDRESS-MASTER-STREET
70 TO EMPLOYEE-ADDRESS-PRINT-LINE.
71 MOVE 3 TO W005-LINE-SKIP.
72 PERFORM C040-WRITE-DETAIL-LINE.
73 MOVE EMPLOYEE-ADDRESS-MASTER-CITY
74 TO EMPLOYEE-ADDRESS-PRINT-LINE.
75 MOVE 3 TO W005-LINE-SKIP.
76 PERFORM C040-WRITE-DETAIL-LINE.
77 PERFORM C060-READ-EMPLOYEE-MASTER.
78 *
79 C040-WRITE-DETAIL-LINE.
80 *
81 WRITE EMPLOYEE-ADDRESS-PRINT-LINE
82 AFTER ADVANCING W005-LINE-SKIP LINES.
83 *
84 C060-READ-EMPLOYEE-MASTER.
85 *
86 READ EMPLOYEE-ADDRESS-MASTER
87 AT END, MOVE "1" TO W005-END-OF-FILE-SWITCH.
DATE-WRITTEN.
SOURCE-COMPUTER.
OBJECT-COMPUTER.
AUTHOR.
SECURITY.
CONFIGURATION SECTION
INPUT-OUTPUT SECTION
00 SUCCESSFUL COMPLETION
10 END OF FILE
21 KEY NOT IN SEQUENCE(INDEXED)
22 DUPLICATE KEY ON WRITE
23 NO RECORD FOUND
24 DISK FULL
30 HARDWARE ERROR (DISK NOT READY ECT.)
91 FILE STRUCTURED DESTROYED
CHAPTER 7
Introduction
Sections
FILE SECTION
FD file name
LABEL RECORD | RECORDS IS | ARE OMITTED | STANDARD
VALUE OF FILE ID IS data name.
-------------------------------------------------------------------------------
WORKING STORAGE SECTION
LINKAGE SECTION
SCREEN SECTION
Introduction
Structure Programming
Program Constructs
The IF Condition
Modular Programming
One of the developments in structure programming was the
idea of modularizing the program by coding into it's
sections. This idea is extensively used to COBOL
programs written for mainframes where the use of
advanced features like Sort require it. It is also
useful and is used in COBOL 6.50. It is mandatory if
the program is too large for computer memory requiring
it to be segmented. Secondly you may some day want to
write COBOl programs for mainframes or port the programs
that you have already written over to mainframes and you
would need to know how these sections are used.
Other Sections
Paragraphs
In much the same manner that the prefixes for data names
make it easier to pinpoint their location in the program
listing section and paragraph name should also have
prefixes. This task just is to have the prefix
consisting of a letter followed by 3 digit number
followed by hyphen. You can easily use the letter C for
the first section, F for the second, J for the third,
etc. However you prefer to do it. And have enough
letters in between for future modifications. The digits
start with 000 for the section header and incremented by
20 for the paragraphs. This should give you enough
numbers for the paragraphs in the section. Otherwise
makes succeeding paragraphs have 4 digit numbers in the
prefix.
Self Documented Procedure Names
CHAPTER 9
Screen Processing Format Accept 3
Introduction
Screen Format
DISPLAY screen-name
1 IDENTIFICATION DIVISION.
2 *
3 PROGRAM-ID. PROG901.
4 * *
5 ***************************************************************
6 * *
7 * 1. DATE-WRITTEN. 08/03/90. *
8 * *
9 * 2. THIS PROGRAM ACCEPTS ENTRIES FROM THE CONSOLE DISPLAY *
10 * AND DISPLAYS THEM ON THE PRINTER. THE FIELDS ARE: *
11 * A) FIELD 1 - NAME *
12 * B) FIELD 2 - ADDRESS *
13 * C) FIELD 3 - CITY/STATE *
14 * *
15 ***************************************************************
16 *
17 *
18 ENVIRONMENT DIVISION.
19 *
20 CONFIGURATION SECTION.
21 *
22 SPECIAL-NAMES.
23 *
24 PRINTER IS PRINTER-DISPLAY.
25 *
26 *
27 DATA DIVISION.
28 *
29 ***************************************************************
30 * *
31 WORKING-STORAGE SECTION.
32 * *
33 ***************************************************************
34 *
35 * USES OF W005-KEYBOARD-KEY-SWITCH
36 * ] . F9 KEY -- END OF JOB.
37 *
38 01 W005-KEYBOARD-KEY-SWITCH PIC 99.
39 88 W005-F9-KEY-ACTIVATED VALUE 10.
40 *
41 01 W005-RECORD-ACCEPTED-COUNT PIC 9(4) VALUE +0.
42 *
43 01 W010-EMPLOYEE-WK-RECORD.
44 05 W010-EMPLOYEE-WK-NAME PIC X(30).
45 05 W010-EMPLOYEE-WK-STREET PIC X(25).
46 05 W010-EMPLOYEE-WK-CITY PIC X(25).
47 /
48 ***************************************************************
49 * *
50 SCREEN SECTION.
51 * *
52 ***************************************************************
53 *
54 *
55 01 SCREEN1-ADDRESS-ENTRY.
56 05 BLANK SCREEN.
57 05 LINE 1 COLUMN 16 VALUE "E M P L O Y E E"
58 HIGHLIGHT.
59 05 LINE 1 COLUMN 35 VALUE "A D D R E S S"
60 HIGHLIGHT.
61 05 LINE 1 COLUMN 52 VALUE "E N T R Y"
62 HIGHLIGHT.
63 05 LINE 3 COLUMN 24 HIGHLIGHT
64 VALUE "NAME:".
65 05 SCREEN1-NAME LINE 3 COLUMN 30
66 PIC X(30)
67 REVERSE-VIDEO
68 USING W010-EMPLOYEE-WK-NAME.
69 05 LINE 5 COLUMN 22 HIGHLIGHT
70 VALUE "STREET:".
71 05 SCREEN1-STREET LINE 5 COLUMN 30
72 PIC X(25)
73 REVERSE-VIDEO
74 USING W010-EMPLOYEE-WK-STREET.
75 05 LINE 7 COLUMN 18 HIGHLIGHT
76 VALUE "CITY/STATE:".
77 05 SCREEN1-CITY LINE 7 COLUMN 30
78 PIC X(25)
79 REVERSE-VIDEO
80 USING W010-EMPLOYEE-WK-CITY.
81 /
82 PROCEDURE DIVISION.
83 *
84 ***************************************************************
85 * *
86 C000-MAIN-LINE SECTION.
87 * *
88 ***************************************************************
89 *
90 C020-MAIN-LINE-LOGIC.
91 MOVE 98 TO W005-KEYBOARD-KEY-SWITCH.
92 PERFORM C120-DISPLAY-NEW-SCREEN.
93 PERFORM C040-PROCESS-NAME-ENTRY
94 THRU C100-PROCESS-SCREEN-EXIT
95 UNTIL W005-F9-KEY-ACTIVATED.
96 PERFORM C980-EOJ-ROUTINE.
97 STOP RUN.
98 *
99 C040-PROCESS-NAME-ENTRY.
100 ACCEPT ( 3, 30 )
101 W010-EMPLOYEE-WK-NAME.
102 ACCEPT W005-KEYBOARD-KEY-SWITCH FROM ESCAPE KEY.
103 IF W005-F9-KEY-ACTIVATED
104 GO TO C100-PROCESS-SCREEN-EXIT.
105 *
106 C060-PROCESS-STREET-ENTRY.
107 ACCEPT ( 5, 30 )
108 W010-EMPLOYEE-WK-STREET.
109 ACCEPT W005-KEYBOARD-KEY-SWITCH FROM ESCAPE KEY.
110 IF W005-F9-KEY-ACTIVATED
111 GO TO C100-PROCESS-SCREEN-EXIT.
112 *
113 C080-PROCESS-CITY-ENTRY.
114 ACCEPT ( 7, 30 )
115 W010-EMPLOYEE-WK-CITY.
116 ACCEPT W005-KEYBOARD-KEY-SWITCH FROM ESCAPE KEY.
117 IF W005-F9-KEY-ACTIVATED
118 GO TO C100-PROCESS-SCREEN-EXIT.
119 EXHIBIT NAMED W010-EMPLOYEE-WK-NAME UPON PRINTER-DISPLAY.
120 EXHIBIT NAMED W010-EMPLOYEE-WK-STREET UPON PRINTER-DISPLAY.
121 EXHIBIT NAMED W010-EMPLOYEE-WK-CITY UPON PRINTER-DISPLAY.
122 ADD 1 TO W005-RECORD-ACCEPTED-COUNT.
123 PERFORM C120-DISPLAY-NEW-SCREEN.
124 C100-PROCESS-SCREEN-EXIT. EXIT.
125 *
126 C120-DISPLAY-NEW-SCREEN.
127 MOVE SPACES TO W010-EMPLOYEE-WK-NAME
128 W010-EMPLOYEE-WK-STREET
129 W010-EMPLOYEE-WK-CITY.
130 DISPLAY SCREEN1-ADDRESS-ENTRY.
131 /
132 C980-EOJ-ROUTINE.
133 IF W005-RECORD-ACCEPTED-COUNT GREATER THAN ZEROS
134 DISPLAY "JOB PROG901: SUCCESSFUL ENTRY COMPLETED"
135 UPON PRINTER-DISPLAY
136 ELSE DISPLAY "JOB PROG901: UNSUCCESSFUL ENTRY"
137 UPON PRINTER-DISPLAY.
138 EXHIBIT NAMED W005-RECORD-ACCEPTED-COUNT
139 UPON PRINTER-DISPLAY.