Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to Tables & Arrays
Tables & Arrays | Beginner | COBOL

Single Dimension Table

Problem Description

Create and access a single-dimension table (array).

Expected Output

Working with 1D arrays

Hints

Use OCCURS clause to define arrays. Subscripts start at 1.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. TABLE1D. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-DAYS-TABLE. 05 WS-DAY PIC X(10) OCCURS 7 TIMES. 01 WS-NUMBERS. 05 WS-NUM PIC 9(3) OCCURS 10 TIMES. 01 WS-I PIC 9(2). 01 WS-SUM PIC 9(5) VALUE 0. 01 WS-INPUT PIC 9(2). PROCEDURE DIVISION. * Initialize days table MOVE "MONDAY" TO WS-DAY(1). MOVE "TUESDAY" TO WS-DAY(2). MOVE "WEDNESDAY" TO WS-DAY(3). MOVE "THURSDAY" TO WS-DAY(4). MOVE "FRIDAY" TO WS-DAY(5). MOVE "SATURDAY" TO WS-DAY(6). MOVE "SUNDAY" TO WS-DAY(7). * Access by subscript DISPLAY "ENTER DAY NUMBER (1-7): ". ACCEPT WS-INPUT. IF WS-INPUT >= 1 AND WS-INPUT <= 7 DISPLAY "DAY: " WS-DAY(WS-INPUT) ELSE DISPLAY "INVALID DAY NUMBER" END-IF. * Fill numbers and sum PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 10 MOVE WS-I TO WS-NUM(WS-I) END-PERFORM. PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 10 ADD WS-NUM(WS-I) TO WS-SUM END-PERFORM. DISPLAY "SUM OF 1-10: " WS-SUM. STOP RUN.

Explanation:

OCCURS n TIMES creates array. Access with subscript in parentheses.