Data representation defines how data is stored, formatted, and interpreted in COBOL programs using PICTURE clauses, data types, and storage formats. Learn to represent different kinds of information effectively.
123456789101112131415161718192021222324252627282930313233WORKING-STORAGE SECTION. 01 NUMERIC-DATA-REPRESENTATION. 05 INTEGER-NUMBERS. 10 SMALL-INTEGER PIC 9(4). *> 4-digit integer 10 LARGE-INTEGER PIC 9(8). *> 8-digit integer 10 SIGNED-INTEGER PIC S9(6). *> Signed 6-digit integer 05 DECIMAL-NUMBERS. 10 DECIMAL-AMOUNT PIC 9(6)V99. *> 6 digits, 2 decimal places 10 PRECISE-DECIMAL PIC 9(9)V999. *> 9 digits, 3 decimal places 10 SIGNED-DECIMAL PIC S9(7)V99. *> Signed decimal 05 COMPUTATIONAL-NUMBERS. 10 COMP-NUMBER PIC 9(6) COMP. *> Binary representation 10 COMP3-NUMBER PIC 9(6) COMP-3. *> Packed decimal 10 COMP5-NUMBER PIC 9(6) COMP-5. *> Native binary PROCEDURE DIVISION. PERFORM DEMONSTRATE-NUMERIC-REPRESENTATION DEMONSTRATE-NUMERIC-REPRESENTATION. MOVE 1234 TO SMALL-INTEGER MOVE 12345678 TO LARGE-INTEGER MOVE -50000 TO SIGNED-INTEGER MOVE 1500.50 TO DECIMAL-AMOUNT MOVE 123456.789 TO PRECISE-DECIMAL MOVE -7500.25 TO SIGNED-DECIMAL DISPLAY 'Numeric data representation:' DISPLAY 'Small Integer: ' SMALL-INTEGER DISPLAY 'Large Integer: ' LARGE-INTEGER DISPLAY 'Signed Integer: ' SIGNED-INTEGER DISPLAY 'Decimal Amount: ' DECIMAL-AMOUNT DISPLAY 'Precise Decimal: ' PRECISE-DECIMAL DISPLAY 'Signed Decimal: ' SIGNED-DECIMAL.
Represent numeric data using different PICTURE clauses: 9 for digits, V for decimal point, S for sign, and COMP/COMP-3/COMP-5 for different storage formats. Choose appropriate formats for data precision and storage efficiency.
12345678910111213141516171819202122232425262728293031323334353637WORKING-STORAGE SECTION. 01 CHARACTER-DATA-REPRESENTATION. 05 ALPHANUMERIC-DATA. 10 CUSTOMER-NAME PIC X(30). *> Alphanumeric field 10 ADDRESS PIC X(50). *> Alphanumeric field 10 PHONE-NUMBER PIC X(12). *> Alphanumeric field 05 ALPHABETIC-DATA. 10 FIRST-NAME PIC A(15). *> Alphabetic only 10 LAST-NAME PIC A(20). *> Alphabetic only 10 MIDDLE-INITIAL PIC A. *> Single character 05 MIXED-DATA. 10 PRODUCT-CODE PIC X(10). *> Mixed characters 10 SERIAL-NUMBER PIC X(15). *> Mixed characters 10 DESCRIPTION PIC X(100). *> Mixed characters PROCEDURE DIVISION. PERFORM DEMONSTRATE-CHARACTER-REPRESENTATION DEMONSTRATE-CHARACTER-REPRESENTATION. MOVE 'JOHN SMITH' TO CUSTOMER-NAME MOVE '123 MAIN STREET' TO ADDRESS MOVE '(555) 123-4567' TO PHONE-NUMBER MOVE 'JOHN' TO FIRST-NAME MOVE 'SMITH' TO LAST-NAME MOVE 'A' TO MIDDLE-INITIAL MOVE 'PROD-001' TO PRODUCT-CODE MOVE 'SN123456789' TO SERIAL-NUMBER DISPLAY 'Character data representation:' DISPLAY 'Customer Name: ' CUSTOMER-NAME DISPLAY 'Address: ' ADDRESS DISPLAY 'Phone: ' PHONE-NUMBER DISPLAY 'First Name: ' FIRST-NAME DISPLAY 'Last Name: ' LAST-NAME DISPLAY 'Middle Initial: ' MIDDLE-INITIAL DISPLAY 'Product Code: ' PRODUCT-CODE DISPLAY 'Serial Number: ' SERIAL-NUMBER.
Represent character data using X for alphanumeric fields (letters, digits, special characters) and A for alphabetic fields (letters only). Use appropriate field sizes for different data types.
12345678910111213141516171819202122232425262728293031323334353637WORKING-STORAGE SECTION. 01 EDITED-DATA-REPRESENTATION. 05 CURRENCY-FORMAT. 10 RAW-AMOUNT PIC 9(9)V99. 10 EDITED-AMOUNT PIC $,$$$,$$9.99. *> Currency format 10 SIMPLE-CURRENCY PIC $999.99. *> Simple currency 05 DATE-FORMAT. 10 RAW-DATE PIC 9(8). 10 EDITED-DATE PIC 99/99/9999. *> Date format 10 LONG-DATE PIC 99/99/9999. *> Long date format 05 PHONE-FORMAT. 10 RAW-PHONE PIC 9(10). 10 EDITED-PHONE PIC (999) 999-9999. *> Phone format 10 SIMPLE-PHONE PIC 999-999-9999. *> Simple phone 05 SPECIAL-FORMATS. 10 ZERO-SUPPRESSED PIC ZZZZZ9. *> Zero suppression 10 SIGNED-FORMAT PIC +,$$$,$$9.99. *> Signed format 10 NEGATIVE-FORMAT PIC -,$$$,$$9.99. *> Negative format PROCEDURE DIVISION. PERFORM DEMONSTRATE-EDITED-REPRESENTATION DEMONSTRATE-EDITED-REPRESENTATION. MOVE 1234567.89 TO RAW-AMOUNT MOVE RAW-AMOUNT TO EDITED-AMOUNT MOVE 20231225 TO RAW-DATE MOVE RAW-DATE TO EDITED-DATE MOVE 1234567890 TO RAW-PHONE MOVE RAW-PHONE TO EDITED-PHONE DISPLAY 'Edited data representation:' DISPLAY 'Raw Amount: ' RAW-AMOUNT DISPLAY 'Edited Amount: ' EDITED-AMOUNT DISPLAY 'Raw Date: ' RAW-DATE DISPLAY 'Edited Date: ' EDITED-DATE DISPLAY 'Raw Phone: ' RAW-PHONE DISPLAY 'Edited Phone: ' EDITED-PHONE.
Use edited data representation with special characters for formatting: $ for currency, / for dates, () for phone numbers, Z for zero suppression, and + or - for sign indicators.
123456789101112131415161718192021222324252627282930WORKING-STORAGE SECTION. 01 DATA-STORAGE-FORMATS. 05 DISPLAY-FORMAT. 10 DISPLAY-NUMERIC PIC 9(6). *> Character format 10 DISPLAY-ALPHANUMERIC PIC X(20). *> Character format 05 COMPUTATIONAL-FORMATS. 10 COMP-BINARY PIC 9(6) COMP. *> Binary format 10 COMP-PACKED PIC 9(6) COMP-3. *> Packed decimal 10 COMP-NATIVE PIC 9(6) COMP-5. *> Native binary 05 SPECIAL-FORMATS. 10 INDEX-FORMAT PIC 9(6) INDEX. *> Index value 10 POINTER-FORMAT USAGE POINTER. *> Memory address 10 PROCEDURE-POINTER USAGE PROCEDURE-POINTER. PROCEDURE DIVISION. PERFORM DEMONSTRATE-STORAGE-FORMATS DEMONSTRATE-STORAGE-FORMATS. MOVE 123456 TO DISPLAY-NUMERIC MOVE 'HELLO WORLD' TO DISPLAY-ALPHANUMERIC MOVE 123456 TO COMP-BINARY MOVE 123456 TO COMP-PACKED MOVE 123456 TO COMP-NATIVE DISPLAY 'Data storage formats:' DISPLAY 'Display Numeric: ' DISPLAY-NUMERIC DISPLAY 'Display Alphanumeric: ' DISPLAY-ALPHANUMERIC DISPLAY 'COMP Binary: ' COMP-BINARY DISPLAY 'COMP Packed: ' COMP-PACKED DISPLAY 'COMP Native: ' COMP-NATIVE.
Choose appropriate storage formats based on usage: DISPLAY for character representation, COMP for binary storage, COMP-3 for packed decimal, INDEX for table indexing, and POINTER for memory addresses.
12345678910111213141516171819202122232425262728293031323334353637WORKING-STORAGE SECTION. 01 DATA-TYPE-CONVERSION. 05 SOURCE-DATA. 10 STRING-NUMBER PIC X(10). 10 NUMERIC-VALUE PIC 9(6). 10 ALPHANUMERIC-DATA PIC X(20). 05 CONVERTED-DATA. 10 CONVERTED-NUMBER PIC 9(6). 10 CONVERTED-STRING PIC X(10). 10 UPPERCASE-DATA PIC X(20). 10 LOWERCASE-DATA PIC X(20). PROCEDURE DIVISION. PERFORM DEMONSTRATE-DATA-TYPE-CONVERSION DEMONSTRATE-DATA-TYPE-CONVERSION. MOVE '123456' TO STRING-NUMBER MOVE 789012 TO NUMERIC-VALUE MOVE 'Hello World' TO ALPHANUMERIC-DATA *> Convert string to numeric MOVE STRING-NUMBER TO CONVERTED-NUMBER *> Convert numeric to string MOVE NUMERIC-VALUE TO CONVERTED-STRING *> Convert to uppercase MOVE FUNCTION UPPER-CASE(ALPHANUMERIC-DATA) TO UPPERCASE-DATA *> Convert to lowercase MOVE FUNCTION LOWER-CASE(ALPHANUMERIC-DATA) TO LOWERCASE-DATA DISPLAY 'Data type conversion:' DISPLAY 'String to Number: ' CONVERTED-NUMBER DISPLAY 'Number to String: ' CONVERTED-STRING DISPLAY 'Uppercase: ' UPPERCASE-DATA DISPLAY 'Lowercase: ' LOWERCASE-DATA.
Convert between different data types using MOVE statements and intrinsic functions. Convert strings to numbers, numbers to strings, and change case using UPPER-CASE and LOWER-CASE functions.
123456789101112131415161718192021222324252627282930313233343536WORKING-STORAGE SECTION. 01 DATA-REPRESENTATION-BEST-PRACTICES. 05 WELL-DEFINED-DATA. 10 CUSTOMER-ID PIC 9(6). *> Clear numeric ID 10 CUSTOMER-NAME PIC X(30). *> Appropriate size 10 ACCOUNT-BALANCE PIC 9(9)V99. *> Sufficient precision 10 ACCOUNT-STATUS PIC X. *> Single character 88 STATUS-ACTIVE VALUE 'A'. 88 STATUS-INACTIVE VALUE 'I'. 05 CONSISTENT-FORMATS. 10 DATE-FIELD PIC 9(8). *> YYYYMMDD format 10 TIME-FIELD PIC 9(6). *> HHMMSS format 10 AMOUNT-FIELD PIC 9(9)V99. *> Consistent decimal places 05 APPROPRIATE-SIZES. 10 SHORT-FIELD PIC X(10). *> Appropriate for short data 10 MEDIUM-FIELD PIC X(50). *> Appropriate for medium data 10 LONG-FIELD PIC X(200). *> Appropriate for long data PROCEDURE DIVISION. PERFORM DEMONSTRATE-BEST-PRACTICES DEMONSTRATE-BEST-PRACTICES. MOVE 123456 TO CUSTOMER-ID MOVE 'JOHN SMITH' TO CUSTOMER-NAME MOVE 1500.50 TO ACCOUNT-BALANCE MOVE 'A' TO ACCOUNT-STATUS DISPLAY 'Best practices demonstration:' DISPLAY 'Customer ID: ' CUSTOMER-ID DISPLAY 'Customer Name: ' CUSTOMER-NAME DISPLAY 'Account Balance: ' ACCOUNT-BALANCE DISPLAY 'Account Status: ' ACCOUNT-STATUS IF STATUS-ACTIVE DISPLAY 'Account is active' END-IF.
Follow best practices: use appropriate data types and sizes, maintain consistent formats, define clear field purposes, use condition names for flags, and choose efficient storage formats.
1234567891011121314151617181920212223242526272829303132333435363738394041WORKING-STORAGE SECTION. 01 DOCUMENTED-DATA-REPRESENTATION. 05 CUSTOMER-MASTER-DATA. *> Customer identification and basic information 10 CUSTOMER-ID PIC 9(6). *> Unique customer identifier (1-999999) 10 CUSTOMER-NAME PIC X(30). *> Customer full name (last, first middle) 10 CUSTOMER-PHONE PIC X(12). *> Customer phone number (XXX-XXX-XXXX) 10 CUSTOMER-EMAIL PIC X(40). *> Customer email address 05 FINANCIAL-DATA. *> Customer financial information 10 ACCOUNT-BALANCE PIC 9(9)V99. *> Current account balance (0-999999.99) 10 CREDIT-LIMIT PIC 9(9)V99. *> Credit limit (0-999999.99) 10 PAYMENT-TERMS PIC X(10). *> Payment terms (NET30, NET60, etc.) PROCEDURE DIVISION. PERFORM DEMONSTRATE-DOCUMENTED-REPRESENTATION DEMONSTRATE-DOCUMENTED-REPRESENTATION. MOVE 123456 TO CUSTOMER-ID MOVE 'JOHN SMITH' TO CUSTOMER-NAME MOVE '555-123-4567' TO CUSTOMER-PHONE MOVE 'john@email.com' TO CUSTOMER-EMAIL MOVE 1500.50 TO ACCOUNT-BALANCE MOVE 5000.00 TO CREDIT-LIMIT MOVE 'NET30' TO PAYMENT-TERMS DISPLAY 'Documented data representation:' DISPLAY 'Customer ID: ' CUSTOMER-ID DISPLAY 'Customer Name: ' CUSTOMER-NAME DISPLAY 'Phone: ' CUSTOMER-PHONE DISPLAY 'Email: ' CUSTOMER-EMAIL DISPLAY 'Balance: ' ACCOUNT-BALANCE DISPLAY 'Credit Limit: ' CREDIT-LIMIT DISPLAY 'Payment Terms: ' PAYMENT-TERMS.
Document data representation with clear comments explaining field purposes, data ranges, formats, and business rules. Include examples and constraints for better understanding and maintenance.
1234567891011121314151617181920212223242526WORKING-STORAGE SECTION. 01 PERFORMANCE-CONSIDERATIONS. 05 EFFICIENT-DATA-TYPES. 10 COMP-NUMERIC PIC 9(6) COMP. *> Efficient for calculations 10 DISPLAY-NUMERIC PIC 9(6). *> Efficient for display 10 PACKED-DECIMAL PIC 9(6)V99 COMP-3. *> Efficient for financial 05 APPROPRIATE-SIZES. 10 SMALL-FIELD PIC X(10). *> Minimal memory usage 10 MEDIUM-FIELD PIC X(50). *> Balanced size 10 LARGE-FIELD PIC X(200). *> Sufficient for large data 05 STORAGE-OPTIMIZATION. 10 GROUPED-DATA PIC X(100). *> Group related data 10 ALIGNED-DATA PIC X(100). *> Proper alignment PROCEDURE DIVISION. PERFORM DEMONSTRATE-PERFORMANCE-CONSIDERATIONS DEMONSTRATE-PERFORMANCE-CONSIDERATIONS. MOVE 123456 TO COMP-NUMERIC MOVE 123456 TO DISPLAY-NUMERIC MOVE 1234.56 TO PACKED-DECIMAL DISPLAY 'Performance considerations:' DISPLAY 'COMP Numeric: ' COMP-NUMERIC DISPLAY 'Display Numeric: ' DISPLAY-NUMERIC DISPLAY 'Packed Decimal: ' PACKED-DECIMAL.
Consider performance when choosing data representations: use COMP for calculations, DISPLAY for I/O operations, appropriate field sizes for memory usage, and efficient storage formats for different data types.