Data processing encompasses comprehensive manipulation, transformation, and analysis of data using various COBOL operations. Learn arithmetic processing, string manipulation, file operations, and data validation techniques.
12345678910111213141516171819202122232425262728293031323334353637WORKING-STORAGE SECTION. 01 ARITHMETIC-PROCESSING. 05 INPUT-DATA. 10 AMOUNT-1 PIC 9(6)V99. 10 AMOUNT-2 PIC 9(6)V99. 10 AMOUNT-3 PIC 9(6)V99. 05 PROCESSED-DATA. 10 TOTAL-AMOUNT PIC 9(9)V99. 10 AVERAGE-AMOUNT PIC 9(6)V99. 10 PERCENTAGE PIC 9(3)V99. 10 DISCOUNT-AMOUNT PIC 9(6)V99. PROCEDURE DIVISION. PERFORM ARITHMETIC-DATA-PROCESSING ARITHMETIC-DATA-PROCESSING. MOVE 1000.50 TO AMOUNT-1 MOVE 1500.75 TO AMOUNT-2 MOVE 2000.25 TO AMOUNT-3 *> Calculate total amount ADD AMOUNT-1 AMOUNT-2 AMOUNT-3 GIVING TOTAL-AMOUNT *> Calculate average DIVIDE TOTAL-AMOUNT BY 3 GIVING AVERAGE-AMOUNT *> Calculate percentage COMPUTE PERCENTAGE = (AMOUNT-1 / TOTAL-AMOUNT) * 100 *> Calculate discount MULTIPLY TOTAL-AMOUNT BY 0.10 GIVING DISCOUNT-AMOUNT DISPLAY 'Arithmetic processing results:' DISPLAY 'Total Amount: ' TOTAL-AMOUNT DISPLAY 'Average Amount: ' AVERAGE-AMOUNT DISPLAY 'Percentage: ' PERCENTAGE '%' DISPLAY 'Discount: ' DISCOUNT-AMOUNT.
Perform arithmetic data processing using ADD, SUBTRACT, MULTIPLY, DIVIDE, and COMPUTE statements. Calculate totals, averages, percentages, and other mathematical operations for data analysis.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849WORKING-STORAGE SECTION. 01 STRING-PROCESSING. 05 INPUT-STRINGS. 10 FIRST-NAME PIC X(15). 10 LAST-NAME PIC X(20). 10 MIDDLE-INITIAL PIC X. 10 PHONE-NUMBER PIC X(12). 05 PROCESSED-STRINGS. 10 FULL-NAME PIC X(40). 10 FORMATTED-PHONE PIC X(14). 10 INITIALS PIC X(5). 10 DISPLAY-NAME PIC X(50). PROCEDURE DIVISION. PERFORM STRING-DATA-PROCESSING STRING-DATA-PROCESSING. MOVE 'JOHN' TO FIRST-NAME MOVE 'SMITH' TO LAST-NAME MOVE 'A' TO MIDDLE-INITIAL MOVE '1234567890' TO PHONE-NUMBER *> Concatenate full name STRING FIRST-NAME ' ' LAST-NAME INTO FULL-NAME END-STRING *> Format phone number STRING '(' PHONE-NUMBER(1:3) ') ' PHONE-NUMBER(4:3) '-' PHONE-NUMBER(7:4) INTO FORMATTED-PHONE END-STRING *> Create initials STRING FIRST-NAME(1:1) '.' MIDDLE-INITIAL '.' LAST-NAME(1:1) '.' INTO INITIALS END-STRING *> Create display name STRING FULL-NAME ' (' FORMATTED-PHONE ')' INTO DISPLAY-NAME END-STRING DISPLAY 'String processing results:' DISPLAY 'Full Name: ' FULL-NAME DISPLAY 'Formatted Phone: ' FORMATTED-PHONE DISPLAY 'Initials: ' INITIALS DISPLAY 'Display Name: ' DISPLAY-NAME.
Process string data using STRING statements for concatenation and formatting. Combine multiple strings, format data for display, and create structured output from individual components.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354WORKING-STORAGE SECTION. 01 DATA-VALIDATION-CLEANING. 05 RAW-DATA. 10 CUSTOMER-ID PIC X(10). 10 CUSTOMER-NAME PIC X(30). 10 CUSTOMER-PHONE PIC X(15). 10 CUSTOMER-EMAIL PIC X(40). 05 CLEANED-DATA. 10 VALID-CUSTOMER-ID PIC 9(6). 10 CLEANED-CUSTOMER-NAME PIC X(30). 10 FORMATTED-PHONE PIC X(12). 10 VALIDATED-EMAIL PIC X(40). 05 VALIDATION-FLAGS. 10 ID-VALID PIC X. 10 NAME-VALID PIC X. 10 PHONE-VALID PIC X. 10 EMAIL-VALID PIC X. PROCEDURE DIVISION. PERFORM DATA-VALIDATION-CLEANING DATA-VALIDATION-CLEANING. MOVE ' 123456 ' TO CUSTOMER-ID MOVE 'john smith ' TO CUSTOMER-NAME MOVE '(123) 456-7890' TO CUSTOMER-PHONE MOVE 'john@email.com' TO CUSTOMER-EMAIL *> Clean and validate customer ID PERFORM CLEAN-CUSTOMER-ID *> Clean customer name PERFORM CLEAN-CUSTOMER-NAME *> Format phone number PERFORM FORMAT-PHONE-NUMBER *> Validate email PERFORM VALIDATE-EMAIL DISPLAY 'Data validation and cleaning results:' DISPLAY 'Valid ID: ' VALID-CUSTOMER-ID DISPLAY 'Cleaned Name: ' CLEANED-CUSTOMER-NAME DISPLAY 'Formatted Phone: ' FORMATTED-PHONE DISPLAY 'Validated Email: ' VALIDATED-EMAIL. CLEAN-CUSTOMER-ID. *> Remove spaces and validate numeric INSPECT CUSTOMER-ID REPLACING ALL SPACES BY ZEROS IF CUSTOMER-ID IS NUMERIC MOVE CUSTOMER-ID TO VALID-CUSTOMER-ID MOVE 'Y' TO ID-VALID ELSE MOVE 'N' TO ID-VALID END-IF.
Implement data validation and cleaning procedures to ensure data quality. Remove unwanted characters, validate data formats, and clean data for consistent processing.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051WORKING-STORAGE SECTION. 01 DATA-TRANSFORMATION. 05 SOURCE-DATA. 10 SOURCE-DATE PIC 9(8). 10 SOURCE-AMOUNT PIC 9(9)V99. 10 SOURCE-STATUS PIC X. 05 TRANSFORMED-DATA. 10 FORMATTED-DATE PIC X(10). 10 CURRENCY-AMOUNT PIC X(15). 10 STATUS-DESCRIPTION PIC X(20). 05 TRANSFORMATION-RULES. 10 DATE-FORMAT PIC X(10) VALUE 'MM/DD/YYYY'. 10 CURRENCY-SYMBOL PIC X VALUE '$'. 10 DECIMAL-PLACES PIC 9 VALUE 2. PROCEDURE DIVISION. PERFORM DATA-TRANSFORMATION-OPERATION DATA-TRANSFORMATION-OPERATION. MOVE 20231225 TO SOURCE-DATE MOVE 1500.50 TO SOURCE-AMOUNT MOVE 'A' TO SOURCE-STATUS *> Transform date format STRING SOURCE-DATE(5:2) '/' SOURCE-DATE(7:2) '/' SOURCE-DATE(1:4) INTO FORMATTED-DATE END-STRING *> Transform amount to currency format STRING CURRENCY-SYMBOL SOURCE-AMOUNT INTO CURRENCY-AMOUNT END-STRING *> Transform status code to description EVALUATE SOURCE-STATUS WHEN 'A' MOVE 'ACTIVE' TO STATUS-DESCRIPTION WHEN 'I' MOVE 'INACTIVE' TO STATUS-DESCRIPTION WHEN 'S' MOVE 'SUSPENDED' TO STATUS-DESCRIPTION WHEN OTHER MOVE 'UNKNOWN' TO STATUS-DESCRIPTION END-EVALUATE DISPLAY 'Data transformation results:' DISPLAY 'Formatted Date: ' FORMATTED-DATE DISPLAY 'Currency Amount: ' CURRENCY-AMOUNT DISPLAY 'Status Description: ' STATUS-DESCRIPTION.
Transform data from one format to another using STRING statements, EVALUATE statements, and formatting rules. Convert dates, format currency, and transform codes to descriptions.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748WORKING-STORAGE SECTION. 01 BATCH-PROCESSING. 05 BATCH-CONTROL. 10 BATCH-SIZE PIC 9(4) VALUE 1000. 10 RECORDS-PROCESSED PIC 9(6) VALUE 0. 10 RECORDS-SUCCESSFUL PIC 9(6) VALUE 0. 10 RECORDS-FAILED PIC 9(6) VALUE 0. 05 BATCH-STATISTICS. 10 TOTAL-AMOUNT PIC 9(12)V99 VALUE 0. 10 AVERAGE-AMOUNT PIC 9(9)V99. 10 PROCESSING-TIME PIC 9(6). 10 SUCCESS-RATE PIC 9(3)V99. PROCEDURE DIVISION. PERFORM BATCH-DATA-PROCESSING BATCH-DATA-PROCESSING. MOVE FUNCTION CURRENT-TIME TO START-TIME OPEN INPUT INPUT-FILE OPEN OUTPUT OUTPUT-FILE PERFORM UNTIL EOF READ INPUT-FILE AT END SET EOF TO TRUE NOT AT END ADD 1 TO RECORDS-PROCESSED PERFORM PROCESS-SINGLE-RECORD IF PROCESSING-SUCCESSFUL ADD 1 TO RECORDS-SUCCESSFUL WRITE OUTPUT-RECORD FROM PROCESSED-RECORD ELSE ADD 1 TO RECORDS-FAILED END-IF END-READ END-PERFORM CLOSE INPUT-FILE OUTPUT-FILE MOVE FUNCTION CURRENT-TIME TO END-TIME COMPUTE PROCESSING-TIME = END-TIME - START-TIME COMPUTE SUCCESS-RATE = (RECORDS-SUCCESSFUL / RECORDS-PROCESSED) * 100 DISPLAY 'Batch processing completed:' DISPLAY 'Records processed: ' RECORDS-PROCESSED DISPLAY 'Records successful: ' RECORDS-SUCCESSFUL DISPLAY 'Records failed: ' RECORDS-FAILED DISPLAY 'Success rate: ' SUCCESS-RATE '%' DISPLAY 'Processing time: ' PROCESSING-TIME ' seconds'.
Implement batch data processing for handling large volumes of data efficiently. Process records in batches, track statistics, monitor success rates, and measure processing performance.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152WORKING-STORAGE SECTION. 01 DATA-AGGREGATION. 05 TRANSACTION-DATA. 10 TRANSACTION-AMOUNT PIC 9(9)V99. 10 TRANSACTION-DATE PIC 9(8). 10 TRANSACTION-TYPE PIC X. 05 AGGREGATED-DATA. 10 DAILY-TOTAL PIC 9(12)V99 VALUE 0. 10 MONTHLY-TOTAL PIC 9(12)V99 VALUE 0. 10 YEARLY-TOTAL PIC 9(12)V99 VALUE 0. 10 TRANSACTION-COUNT PIC 9(8) VALUE 0. 05 SUMMARY-STATISTICS. 10 AVERAGE-TRANSACTION PIC 9(9)V99. 10 MAX-TRANSACTION PIC 9(9)V99 VALUE 0. 10 MIN-TRANSACTION PIC 9(9)V99 VALUE 999999.99. PROCEDURE DIVISION. PERFORM DATA-AGGREGATION-OPERATION DATA-AGGREGATION-OPERATION. *> Process transactions and aggregate data PERFORM UNTIL EOF READ TRANSACTION-FILE AT END SET EOF TO TRUE NOT AT END ADD TRANSACTION-AMOUNT TO DAILY-TOTAL ADD TRANSACTION-AMOUNT TO MONTHLY-TOTAL ADD TRANSACTION-AMOUNT TO YEARLY-TOTAL ADD 1 TO TRANSACTION-COUNT *> Track min/max values IF TRANSACTION-AMOUNT > MAX-TRANSACTION MOVE TRANSACTION-AMOUNT TO MAX-TRANSACTION END-IF IF TRANSACTION-AMOUNT < MIN-TRANSACTION MOVE TRANSACTION-AMOUNT TO MIN-TRANSACTION END-IF END-READ END-PERFORM *> Calculate average IF TRANSACTION-COUNT > 0 DIVIDE YEARLY-TOTAL BY TRANSACTION-COUNT GIVING AVERAGE-TRANSACTION END-IF DISPLAY 'Data aggregation results:' DISPLAY 'Daily Total: ' DAILY-TOTAL DISPLAY 'Monthly Total: ' MONTHLY-TOTAL DISPLAY 'Yearly Total: ' YEARLY-TOTAL DISPLAY 'Transaction Count: ' TRANSACTION-COUNT DISPLAY 'Average Transaction: ' AVERAGE-TRANSACTION DISPLAY 'Max Transaction: ' MAX-TRANSACTION DISPLAY 'Min Transaction: ' MIN-TRANSACTION.
Perform data aggregation and summarization by calculating totals, averages, counts, and statistical measures. Track min/max values and generate comprehensive summaries from transaction data.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849WORKING-STORAGE SECTION. 01 PROCESSING-ERROR-HANDLING. 05 ERROR-CONTROL. 10 ERROR-COUNT PIC 9(4) VALUE 0. 10 MAX-ERRORS PIC 9(4) VALUE 100. 10 PROCESSING-STATUS PIC X. 88 PROCESSING-SUCCESS VALUE 'S'. 88 PROCESSING-FAILED VALUE 'F'. 05 ERROR-TYPES. 10 VALIDATION-ERROR PIC 9(4) VALUE 0. 10 CALCULATION-ERROR PIC 9(4) VALUE 0. 10 I-O-ERROR PIC 9(4) VALUE 0. PROCEDURE DIVISION. PERFORM PROCESSING-WITH-ERROR-HANDLING PROCESSING-WITH-ERROR-HANDLING. MOVE 'S' TO PROCESSING-STATUS PERFORM UNTIL EOF OR PROCESSING-FAILED READ INPUT-FILE AT END SET EOF TO TRUE NOT AT END PERFORM VALIDATE-RECORD IF VALIDATION-SUCCESSFUL PERFORM PROCESS-RECORD IF PROCESSING-SUCCESSFUL WRITE OUTPUT-RECORD ELSE ADD 1 TO CALCULATION-ERROR ADD 1 TO ERROR-COUNT END-IF ELSE ADD 1 TO VALIDATION-ERROR ADD 1 TO ERROR-COUNT END-IF *> Check error threshold IF ERROR-COUNT > MAX-ERRORS MOVE 'F' TO PROCESSING-STATUS DISPLAY 'Error threshold exceeded - stopping processing' END-IF END-READ END-PERFORM DISPLAY 'Processing error summary:' DISPLAY 'Total errors: ' ERROR-COUNT DISPLAY 'Validation errors: ' VALIDATION-ERROR DISPLAY 'Calculation errors: ' CALCULATION-ERROR DISPLAY 'I/O errors: ' I-O-ERROR.
Implement comprehensive error handling for data processing operations. Track different error types, monitor error thresholds, and provide detailed error reporting for troubleshooting.
12345678910111213141516171819202122232425262728293031WORKING-STORAGE SECTION. 01 PERFORMANCE-OPTIMIZATION. 05 OPTIMIZATION-METRICS. 10 PROCESSING-TIME PIC 9(6). 10 RECORDS-PER-SECOND PIC 9(6). 10 MEMORY-USAGE PIC 9(8). 10 I-O-OPERATIONS PIC 9(6). 05 OPTIMIZATION-TECHNIQUES. 10 BATCH-SIZE PIC 9(4) VALUE 1000. 10 BUFFER-SIZE PIC 9(6) VALUE 10000. 10 PARALLEL-PROCESSING PIC X VALUE 'N'. PROCEDURE DIVISION. PERFORM OPTIMIZED-DATA-PROCESSING OPTIMIZED-DATA-PROCESSING. MOVE FUNCTION CURRENT-TIME TO START-TIME MOVE 0 TO I-O-OPERATIONS *> Use optimized processing techniques PERFORM PROCESS-IN-BATCHES MOVE FUNCTION CURRENT-TIME TO END-TIME COMPUTE PROCESSING-TIME = END-TIME - START-TIME COMPUTE RECORDS-PER-SECOND = RECORDS-PROCESSED / PROCESSING-TIME DISPLAY 'Performance optimization results:' DISPLAY 'Processing time: ' PROCESSING-TIME ' seconds' DISPLAY 'Records per second: ' RECORDS-PER-SECOND DISPLAY 'I/O operations: ' I-O-OPERATIONS DISPLAY 'Memory usage: ' MEMORY-USAGE ' bytes'.
Optimize data processing performance using batch processing, efficient I/O operations, memory management, and performance monitoring. Measure and improve processing rates for better efficiency.