Skip to content

Commit c924f44

Browse files
authored
Merge pull request #279 from vargajb/master
Improve COBOL snippets in doc, and improve code readability in COBOL sources
2 parents 46d3a5c + 63af537 commit c924f44

File tree

17 files changed

+131
-130
lines changed

17 files changed

+131
-130
lines changed

COBOL Programming Course #2 - Learning COBOL/COBOL Programming Course #2 - Learning COBOL.md

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,7 +1091,7 @@ There are many ways we can load a table. The first one involves loading the tabl
10911091
To load a table dynamically, we need to use the PERFORM statement with either subscripting or indexing. When doing this, we need to make sure that the data does not exceed the space allocated for the table. We will discuss file handling and the use of PERFORM clause in a later chapter. For example,
10921092

10931093
```COBOL
1094-
PROCEDURE DIVISION
1094+
PROCEDURE DIVISION.
10951095
...
10961096
PERFORM READ-FILE.
10971097
PERFORM VARYING SUB FROM 1 BY 1 UNTIL END-OF-FILE
@@ -1177,7 +1177,7 @@ We must ensure that the ODO object correctly specifies the number of occurrences
11771177
The following example shows how we can use an OCCURS DEPENDING ON clause:
11781178

11791179
```COBOL
1180-
WORKING-STORAGE SECTION
1180+
WORKING-STORAGE SECTION.
11811181
01 MAIN-AREA.
11821182
03 REC-1.
11831183
05 FIELD-1 PIC 9.
@@ -1763,8 +1763,8 @@ The code we have built so far is still not optimal, the repetition of the perfor
17631763
MOVE 'THE NUMBER IS: ' TO MSG-HEADER OF PRINT-REC.
17641764
17651765
PERFORM VARYING COUNTER FROM 01 BY 1 UNTIL COUNTER EQUAL 11
1766-
MOVE COUNTER TO MSG-TO-WRITE
1767-
WRITE PRINT-REC
1766+
MOVE COUNTER TO MSG-TO-WRITE
1767+
WRITE PRINT-REC
17681768
END-PERFORM.
17691769
17701770
CLOSE PRINT-LINE.
@@ -1899,8 +1899,8 @@ There is no requirement about the order that paragraphs should appear within a C
18991899
2000-READ-NEXT-RECORD.
19001900
PERFORM 4000-READ-RECORD
19011901
PERFORM UNTIL LASTREC = 'Y'
1902-
PERFORM 5000-WRITE-RECORD
1903-
PERFORM 4000-READ-RECORD
1902+
PERFORM 5000-WRITE-RECORD
1903+
PERFORM 4000-READ-RECORD
19041904
END-PERFORM.
19051905
*
19061906
3000-CLOSE-STOP.
@@ -1910,7 +1910,7 @@ There is no requirement about the order that paragraphs should appear within a C
19101910
*
19111911
4000-READ-RECORD.
19121912
READ ACCT-REC
1913-
AT END MOVE 'Y' TO LASTREC
1913+
AT END MOVE 'Y' TO LASTREC
19141914
END-READ.
19151915
*
19161916
5000-WRITE-RECORD.
@@ -1935,8 +1935,8 @@ There is no requirement about the order that paragraphs should appear within a C
19351935
2000-READ-NEXT-RECORD.
19361936
PERFORM 4000-READ-RECORD
19371937
PERFORM UNTIL LASTREC = 'Y'
1938-
PERFORM 5000-WRITE-RECORD
1939-
PERFORM 4000-READ-RECORD
1938+
PERFORM 5000-WRITE-RECORD
1939+
PERFORM 4000-READ-RECORD
19401940
END-PERFORM.
19411941
2000-READ-NEXT-RECORD-END.
19421942
```
@@ -1953,8 +1953,8 @@ Perhaps the simplest way of repeating a perform statement is to use the TIMES ke
19531953

19541954
```COBOL
19551955
PERFORM 10 TIMES
1956-
MOVE FIELD-A TO FIELD-B
1957-
WRITE RECORD
1956+
MOVE FIELD-A TO FIELD-B
1957+
WRITE RECORD
19581958
END-PERFORM.
19591959
```
19601960
*Example 10. TIMES*
@@ -2000,9 +2000,9 @@ Adding the UNTIL keyword to a perform sentence allows you to iterate over a grou
20002000
```COBOL
20012001
MOVE 0 TO COUNTER.
20022002
PERFORM UNTIL COUNTER = 10
2003-
ADD 1 TO COUNTER GIVING COUNTER
2004-
MOVE COUNTER TO MSG-TO-WRITE
2005-
WRITE PRINT-REC
2003+
ADD 1 TO COUNTER GIVING COUNTER
2004+
MOVE COUNTER TO MSG-TO-WRITE
2005+
WRITE PRINT-REC
20062006
END-PERFORM.
20072007
```
20082008
*Example 13. PERFORM UNTIL*
@@ -2024,9 +2024,9 @@ In this case, the Boolean condition is evaluated before the loop is executed. H
20242024

20252025
```COBOL
20262026
PERFORM WITH TEST AFTER UNTIL COUNTER = 10
2027-
ADD 1 TO COUNTER GIVING COUNTER
2028-
MOVE COUNTER TO MSG-TO-WRITE
2029-
WRITE PRINT-REC
2027+
ADD 1 TO COUNTER GIVING COUNTER
2028+
MOVE COUNTER TO MSG-TO-WRITE
2029+
WRITE PRINT-REC
20302030
END-PERFORM.
20312031
```
20322032
*Example 15. PERFORM WITH TEST AFTER UNTIL*
@@ -2490,7 +2490,7 @@ Observe in Example 1. 'The State is not Texas' is written as a result of the fi
24902490

24912491

24922492
```COBOL
2493-
WORKING-STORAGE.
2493+
WORKING-STORAGE SECTION.
24942494
01 USA-STATE PIC X(2) VALUE SPACES.
24952495
88 STATE VALUE 'TX'.
24962496
....
@@ -2521,7 +2521,7 @@ Other level number data-names require the condition expression to include a Bool
25212521

25222522

25232523
```COBOL
2524-
WORKING-STORAGE.
2524+
WORKING-STORAGE SECTION.
25252525
01 USA-STATE.
25262526
05 STATE PIC X(2) VALUE SPACES.
25272527
....
@@ -2610,7 +2610,7 @@ A PERFORM with UNTIL phrase is a conditional expression. In the UNTIL phrase fo
26102610

26112611

26122612
```COBOL
2613-
WORKING-STORAGE.
2613+
WORKING-STORAGE SECTION.
26142614
01 FACIAL-EXP PIC X(11) VALUE SPACES.
26152615
88 HAPPY VALUE 'HAPPY'.
26162616
....
@@ -2628,7 +2628,7 @@ END-PERFORM.
26282628
It is also possible to use PERFORM statement without the use of an 88-level conditional name, observe Example 6.
26292629

26302630
```COBOL
2631-
WORKING-STORAGE.
2631+
WORKING-STORAGE SECTION.
26322632
01 FACIAL-EXP PIC X(11) VALUE SPACES.
26332633
....
26342634
....
@@ -2647,7 +2647,7 @@ END-PERFORM.
26472647
The SEARCH statement searches a table for an element that satisfies the specified condition and adjusts the associated index to indicate that element. Tables, effectively an array of values, are created with an OCCURS clause applied to WORK-STORAGE data names. A WHEN clause is utilized in SEARCH statements to verify if the element searched for satisfies the specified condition. Assuming FACIAL-EXP has many possible values, then SEARCH WHEN is an alternative conditional expression, observe Example 7.
26482648

26492649
```COBOL
2650-
WORKING-STORAGE.
2650+
WORKING-STORAGE SECTION.
26512651
01 FACIAL-EXP-TABLE REDEFINES FACIAL-EXP-LIST.
26522652
05 FACIAL-EXP PIC X(11) OCCURS n TIMES INDEXED BY INX-A.
26532653
88 HAPPY VALUE "HAPPY".
@@ -2657,7 +2657,7 @@ PROCEDURE DIVISION.
26572657
....
26582658
....
26592659
SEARCH FACIAL-EXP
2660-
WHEN HAPPY(INX-A) DISPLAY 'I am glad you are happy'
2660+
WHEN HAPPY(INX-A) DISPLAY 'I am glad you are happy'
26612661
END-SEARCH
26622662
```
26632663
*Example 7. SEARCH WHEN statement*
@@ -3294,7 +3294,9 @@ Example 6 shows a usage of the COBOL function UPPER-CASE where a string or alpha
32943294
```COBOL
32953295
MOVE FUNCTION UPPER-CASE("This is shouting!") TO SOME-FIELD
32963296
DISPLAY SOME-FIELD
3297-
Output - THIS IS SHOUTING!
3297+
```
3298+
```
3299+
Output: THIS IS SHOUTING!
32983300
```
32993301

33003302
*Example 6. Character-handling intrinsic function*

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0001.cobol

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@
7171
* and the call to WRITE-RECORD depend on READ-RECORD having
7272
* been executed before.
7373
* The loop starts at the next line with PERFORM UNTIL
74-
PERFORM UNTIL LASTREC = 'Y'
75-
PERFORM WRITE-RECORD
76-
PERFORM READ-RECORD
77-
END-PERFORM
74+
PERFORM UNTIL LASTREC = 'Y'
75+
PERFORM WRITE-RECORD
76+
PERFORM READ-RECORD
77+
END-PERFORM
7878
.
7979
*
8080
CLOSE-STOP.
@@ -84,7 +84,7 @@
8484
*
8585
READ-RECORD.
8686
READ ACCT-REC
87-
AT END MOVE 'Y' TO LASTREC
87+
AT END MOVE 'Y' TO LASTREC
8888
END-READ.
8989
*
9090
WRITE-RECORD.

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0002.cobol

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@
5252
*
5353
READ-NEXT-RECORD.
5454
PERFORM READ-RECORD
55-
PERFORM UNTIL LASTREC = 'Y'
56-
PERFORM WRITE-RECORD
57-
PERFORM READ-RECORD
58-
END-PERFORM
55+
PERFORM UNTIL LASTREC = 'Y'
56+
PERFORM WRITE-RECORD
57+
PERFORM READ-RECORD
58+
END-PERFORM
5959
.
6060
*
6161
CLOSE-STOP.
@@ -65,7 +65,7 @@
6565
*
6666
READ-RECORD.
6767
READ ACCT-REC
68-
AT END MOVE 'Y' TO LASTREC
68+
AT END MOVE 'Y' TO LASTREC
6969
END-READ.
7070
*
7171
WRITE-RECORD.

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0004.cobol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,13 @@
136136
* paragraph of the code, executes it and returns control to
137137
* the following line.
138138
*
139-
PERFORM UNTIL LASTREC = 'Y'
139+
PERFORM UNTIL LASTREC = 'Y'
140140
* here PERFORM allows a loops to be entered
141141
*
142-
PERFORM WRITE-RECORD
143-
PERFORM READ-RECORD
144-
END-PERFORM
145-
.
142+
PERFORM WRITE-RECORD
143+
PERFORM READ-RECORD
144+
END-PERFORM
145+
.
146146
*
147147
CLOSE-STOP.
148148
CLOSE ACCT-REC.
@@ -151,7 +151,7 @@
151151
*
152152
READ-RECORD.
153153
READ ACCT-REC
154-
AT END MOVE 'Y' TO LASTREC
154+
AT END MOVE 'Y' TO LASTREC
155155
END-READ.
156156
*
157157
WRITE-RECORD.

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0005.cobol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,13 @@
136136
* paragraph of the code, executes it and returns control to
137137
* the following line.
138138
*
139-
PERFORM UNTIL LASTREC = 'Y'
139+
PERFORM UNTIL LASTREC = 'Y'
140140
* here PERFORM allows a loops to be entered
141141
*
142-
PERFORM WRITE-RECORD
143-
PERFORM READ-RECORD
144-
END-PERFORM
145-
.
142+
PERFORM WRITE-RECORD
143+
PERFORM READ-RECORD
144+
END-PERFORM
145+
.
146146
*
147147
CLOSE-STOP.
148148
CLOSE ACCT-REC.
@@ -151,7 +151,7 @@
151151
*
152152
READ-RECORD.
153153
READ ACCT-REC
154-
AT END MOVE 'Y' TO LASTREC
154+
AT END MOVE 'Y' TO LASTREC
155155
END-READ.
156156
*
157157
WRITE-RECORD.

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0006.cobol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@
126126
*
127127
READ-NEXT-RECORD.
128128
PERFORM READ-RECORD
129-
PERFORM UNTIL LASTREC = 'Y'
130-
PERFORM IS-STATE-VIRGINIA
131-
PERFORM WRITE-RECORD
132-
PERFORM READ-RECORD
133-
END-PERFORM
129+
PERFORM UNTIL LASTREC = 'Y'
130+
PERFORM IS-STATE-VIRGINIA
131+
PERFORM WRITE-RECORD
132+
PERFORM READ-RECORD
133+
END-PERFORM
134134
.
135135
*
136136
CLOSE-STOP.
@@ -141,7 +141,7 @@
141141
*
142142
READ-RECORD.
143143
READ ACCT-REC
144-
AT END MOVE 'Y' TO LASTREC
144+
AT END MOVE 'Y' TO LASTREC
145145
END-READ.
146146
*
147147
IS-STATE-VIRGINIA.

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0007.cobol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@
126126
*
127127
READ-NEXT-RECORD.
128128
PERFORM READ-RECORD
129-
PERFORM UNTIL LASTREC = 'Y'
130-
PERFORM IS-STATE-VIRGINIA
131-
PERFORM WRITE-RECORD
132-
PERFORM READ-RECORD
133-
END-PERFORM
129+
PERFORM UNTIL LASTREC = 'Y'
130+
PERFORM IS-STATE-VIRGINIA
131+
PERFORM WRITE-RECORD
132+
PERFORM READ-RECORD
133+
END-PERFORM
134134
.
135135
*
136136
CLOSE-STOP.
@@ -141,7 +141,7 @@
141141
*
142142
READ-RECORD.
143143
READ ACCT-REC
144-
AT END MOVE 'Y' TO LASTREC
144+
AT END MOVE 'Y' TO LASTREC
145145
END-READ.
146146
*
147147
IS-STATE-VIRGINIA.

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0008.cobol

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,18 @@
143143
*
144144
READ-NEXT-RECORD.
145145
PERFORM READ-RECORD
146-
PERFORM UNTIL LASTREC = 'Y'
147-
PERFORM LIMIT-BALANCE-TOTAL
148-
PERFORM WRITE-RECORD
149-
PERFORM READ-RECORD
150-
END-PERFORM
146+
PERFORM UNTIL LASTREC = 'Y'
147+
PERFORM LIMIT-BALANCE-TOTAL
148+
PERFORM WRITE-RECORD
149+
PERFORM READ-RECORD
150+
END-PERFORM
151151
.
152152
*
153153
WRITE-TLIMIT-TBALANCE.
154-
MOVE TLIMIT TO TLIMIT-O.
155-
MOVE TBALANCE TO TBALANCE-O.
156-
WRITE PRINT-REC FROM TRAILER-1.
157-
WRITE PRINT-REC FROM TRAILER-2.
154+
MOVE TLIMIT TO TLIMIT-O.
155+
MOVE TBALANCE TO TBALANCE-O.
156+
WRITE PRINT-REC FROM TRAILER-1.
157+
WRITE PRINT-REC FROM TRAILER-2.
158158
*
159159
CLOSE-STOP.
160160
CLOSE ACCT-REC.
@@ -163,7 +163,7 @@
163163
*
164164
READ-RECORD.
165165
READ ACCT-REC
166-
AT END MOVE 'Y' TO LASTREC
166+
AT END MOVE 'Y' TO LASTREC
167167
END-READ.
168168
*
169169
* The LIMIT-BALANCE-TOTAL paragraph performs an arithmetic

COBOL Programming Course #2 - Learning COBOL/Labs/cbl/CBL0009.cobol

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,18 @@
143143
*
144144
READ-NEXT-RECORD.
145145
PERFORM READ-RECORD
146-
PERFORM UNTIL LASTREC = 'Y'
147-
PERFORM LIMIT-BALANCE-TOTAL
148-
PERFORM WRITE-RECORD
149-
PERFORM READ-RECORD
150-
END-PERFORM
146+
PERFORM UNTIL LASTREC = 'Y'
147+
PERFORM LIMIT-BALANCE-TOTAL
148+
PERFORM WRITE-RECORD
149+
PERFORM READ-RECORD
150+
END-PERFORM
151151
.
152152
*
153153
WRITE-TLIMIT-TBALANCE.
154-
MOVE TLIMIT TO TLIMIT-O.
155-
MOVE TBALANCE TO TBALANCE-O.
156-
WRITE PRINT-REC FROM TRAILER-1.
157-
WRITE PRINT-REC FROM TRAILER-2.
154+
MOVE TLIMIT TO TLIMIT-O.
155+
MOVE TBALANCE TO TBALANCE-O.
156+
WRITE PRINT-REC FROM TRAILER-1.
157+
WRITE PRINT-REC FROM TRAILER-2.
158158
*
159159
CLOSE-STOP.
160160
CLOSE ACCT-REC.
@@ -163,7 +163,7 @@
163163
*
164164
READ-RECORD.
165165
READ ACCT-REC
166-
AT END MOVE 'Y' TO LASTREC
166+
AT END MOVE 'Y' TO LASTREC
167167
END-READ.
168168
*
169169
* The LIMIT-BALANCE-TOTAL paragraph performs an arithmetic

0 commit comments

Comments
 (0)