The ALPHABETIC-UPPER class condition represents one of COBOL's most precise and essential character classification mechanisms, serving as the primary tool for validating uppercase alphabetic content, enforcing data quality standards, and implementing sophisticated character-based validation rules in business applications. Far more than a simple character test, the ALPHABETIC-UPPER class embodies COBOL's comprehensive approach to data validation by providing precise control over character classification, input validation, data quality assurance, and complex string analysis that enable applications to handle diverse data validation requirements while maintaining the accuracy and reliability characteristics that make COBOL ideal for enterprise data processing environments requiring rigorous uppercase character validation capabilities.
In enterprise computing environments, the ALPHABETIC-UPPER class serves as a critical foundation for advanced data validation, enabling developers to create sophisticated business applications that handle strict formatting requirements, implement uppercase naming conventions, enforce standardized data entry protocols, and validate business identifiers according to specific corporate standards. Its capabilities extend far beyond simple character checking to encompass sophisticated validation workflows, dynamic data classification, conditional processing logic, and integration with modern data quality systems that are essential for applications requiring comprehensive uppercase character validation and enterprise data standardization capabilities.
1234567891011121314151617181920*> Basic ALPHABETIC-UPPER validation IF COMPANY-CODE IS ALPHABETIC-UPPER DISPLAY "Company code format is valid" ELSE DISPLAY "Invalid company code format" END-IF. *> Negative test for validation IF DEPARTMENT-NAME IS NOT ALPHABETIC-UPPER DISPLAY "Department name must be uppercase letters only" PERFORM VALIDATION-ERROR-ROUTINE END-IF. *> Combined validation conditions IF PRODUCT-ID IS ALPHABETIC-UPPER AND LENGTH OF PRODUCT-ID = 5 PERFORM PROCESS-VALID-PRODUCT-ID ELSE PERFORM REJECT-INVALID-PRODUCT-ID END-IF.
Basic ALPHABETIC-UPPER testing validates that fields contain only uppercase alphabetic characters.
1234567891011121314151617181920212223242526272829*> Corporate identifier validation ACCEPT CORPORATION-ID FROM CONSOLE. IF CORPORATION-ID IS NOT ALPHABETIC-UPPER DISPLAY "Error: Corporation ID must be uppercase letters" MOVE "INVALID" TO VALIDATION-STATUS PERFORM GET-CORPORATION-ID-AGAIN END-IF. *> State code validation PERFORM VARYING STATE-INDEX FROM 1 BY 1 UNTIL STATE-INDEX > NUMBER-OF-STATES IF STATE-CODE(STATE-INDEX) IS NOT ALPHABETIC-UPPER MOVE "Y" TO STATE-VALIDATION-ERROR MOVE STATE-INDEX TO ERROR-STATE-POSITION EXIT PERFORM END-IF END-PERFORM. *> Business rule enforcement EVALUATE TRUE WHEN ACCOUNT-TYPE IS ALPHABETIC-UPPER PERFORM PROCESS-STANDARD-ACCOUNT WHEN ACCOUNT-TYPE IS ALPHABETIC-LOWER PERFORM PROCESS-SPECIAL-ACCOUNT WHEN ACCOUNT-TYPE IS NUMERIC PERFORM PROCESS-NUMERIC-ACCOUNT WHEN OTHER PERFORM PROCESS-MIXED-ACCOUNT END-EVALUATE.
Business data validation using ALPHABETIC-UPPER for corporate standards and identifier formats.
1234567891011121314151617181920212223242526272829303132333435363738*> Uppercase segment extraction MOVE 0 TO UPPERCASE-SEGMENT-COUNT. PERFORM VARYING SEGMENT-POS FROM 1 BY 1 UNTIL SEGMENT-POS > INPUT-LENGTH MOVE INPUT-STRING(SEGMENT-POS:1) TO CURRENT-CHAR IF CURRENT-CHAR IS ALPHABETIC-UPPER ADD 1 TO UPPERCASE-SEGMENT-COUNT MOVE CURRENT-CHAR TO UPPERCASE-SEGMENT(UPPERCASE-SEGMENT-COUNT) END-IF END-PERFORM. *> Format compliance checking MOVE "Y" TO FORMAT-COMPLIANT. PERFORM VARYING CHECK-POS FROM 1 BY 1 UNTIL CHECK-POS > REQUIRED-LENGTH OR FORMAT-COMPLIANT = "N" MOVE INPUT-FIELD(CHECK-POS:1) TO TEST-CHAR IF TEST-CHAR IS NOT ALPHABETIC-UPPER MOVE "N" TO FORMAT-COMPLIANT MOVE CHECK-POS TO FIRST-ERROR-POSITION END-IF END-PERFORM. *> Case-sensitive data classification IF INPUT-DATA IS ALPHABETIC-UPPER MOVE "UPPERCASE" TO DATA-CLASSIFICATION PERFORM PROCESS-UPPERCASE-DATA ELSE IF INPUT-DATA IS ALPHABETIC-LOWER MOVE "LOWERCASE" TO DATA-CLASSIFICATION PERFORM PROCESS-LOWERCASE-DATA ELSE MOVE "MIXED" TO DATA-CLASSIFICATION PERFORM PROCESS-MIXED-CASE-DATA END-IF.
Advanced string processing using ALPHABETIC-UPPER for format compliance and data classification.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433IDENTIFICATION DIVISION. PROGRAM-ID. ALPHABETIC-UPPER-DEMO. DATA DIVISION. WORKING-STORAGE SECTION. *> Test case definitions 01 TEST-VALIDATION-SUITE. 05 TEST-CASES OCCURS 20 TIMES. 10 TEST-INPUT PIC X(25). 10 EXPECTED-VALID PIC X(1). 10 TEST-DESCRIPTION PIC X(40). *> Validation statistics 01 VALIDATION-STATISTICS. 05 TOTAL-VALIDATIONS PIC 9(4) VALUE 0. 05 SUCCESSFUL-TESTS PIC 9(4) VALUE 0. 05 FAILED-TESTS PIC 9(4) VALUE 0. 05 VALIDATION-ACCURACY PIC 9(3)V99 VALUE 0. *> Character analysis results 01 CHARACTER-BREAKDOWN. 05 UPPERCASE-LETTERS PIC 9(4) VALUE 0. 05 LOWERCASE-LETTERS PIC 9(4) VALUE 0. 05 NUMERIC-DIGITS PIC 9(4) VALUE 0. 05 SPECIAL-CHARACTERS PIC 9(4) VALUE 0. 05 WHITESPACE-COUNT PIC 9(4) VALUE 0. 05 TOTAL-CHARACTERS PIC 9(4) VALUE 0. *> Business entity validation 01 CORPORATE-DATA. 05 COMPANY-NAME PIC X(50). 05 STOCK-SYMBOL PIC X(10). 05 DEPARTMENT-CODE PIC X(8). 05 EMPLOYEE-GRADE PIC X(5). 05 LOCATION-CODE PIC X(6). 05 CURRENCY-CODE PIC X(3). *> Validation results tracking 01 VALIDATION-TRACKING. 05 FIELD-NAME PIC X(25). 05 FIELD-CONTENT PIC X(50). 05 VALIDATION-RESULT PIC X(10). 05 ERROR-DETAILS PIC X(100). 05 FIRST-INVALID-POS PIC 9(3) VALUE 0. 05 INVALID-CHARACTER PIC X(1). *> Processing control variables 01 PROCESSING-CONTROLS. 05 CURRENT-TEST-NUM PIC 9(3) VALUE 0. 05 CHARACTER-POSITION PIC 9(3) VALUE 0. 05 STRING-LENGTH PIC 9(3) VALUE 0. 05 PROCESSING-CHAR PIC X(1). *> Business validation rules 01 BUSINESS-VALIDATION-RULES. 05 ENFORCE-UPPERCASE PIC X(1) VALUE "Y". 88 UPPERCASE-REQUIRED VALUE "Y". 88 UPPERCASE-OPTIONAL VALUE "N". 05 ALLOW-EMPTY-FIELDS PIC X(1) VALUE "N". 88 EMPTY-ALLOWED VALUE "Y". 88 EMPTY-NOT-ALLOWED VALUE "N". PROCEDURE DIVISION. MAIN-PROCESSING. DISPLAY "=== ALPHABETIC-UPPER Class Demonstration ===". DISPLAY " ". PERFORM INITIALIZE-VALIDATION-TESTS PERFORM EXECUTE-BASIC-VALIDATION-TESTS PERFORM DEMONSTRATE-CHARACTER-ANALYSIS PERFORM VALIDATE-CORPORATE-DATA PERFORM DEMONSTRATE-BUSINESS-RULES PERFORM DISPLAY-COMPREHENSIVE-RESULTS DISPLAY " ". DISPLAY "ALPHABETIC-UPPER validation demonstration completed". STOP RUN. INITIALIZE-VALIDATION-TESTS. DISPLAY "1. Initializing Validation Test Suite:". DISPLAY " ===================================". *> Test case 1: Valid uppercase MOVE "MICROSOFT" TO TEST-INPUT(1). MOVE "Y" TO EXPECTED-VALID(1). MOVE "Standard company name" TO TEST-DESCRIPTION(1). *> Test case 2: Valid uppercase acronym MOVE "IBM" TO TEST-INPUT(2). MOVE "Y" TO EXPECTED-VALID(2). MOVE "Three-letter acronym" TO TEST-DESCRIPTION(2). *> Test case 3: Mixed case (invalid) MOVE "Apple" TO TEST-INPUT(3). MOVE "N" TO EXPECTED-VALID(3). MOVE "Mixed case company name" TO TEST-DESCRIPTION(3). *> Test case 4: All lowercase (invalid) MOVE "google" TO TEST-INPUT(4). MOVE "N" TO EXPECTED-VALID(4). MOVE "Lowercase company name" TO TEST-DESCRIPTION(4). *> Test case 5: Contains numbers (invalid) MOVE "COMPANY123" TO TEST-INPUT(5). MOVE "N" TO EXPECTED-VALID(5). MOVE "Alphanumeric combination" TO TEST-DESCRIPTION(5). *> Test case 6: Contains spaces (invalid) MOVE "BIG CORP" TO TEST-INPUT(6). MOVE "N" TO EXPECTED-VALID(6). MOVE "Company name with spaces" TO TEST-DESCRIPTION(6). *> Test case 7: Department code MOVE "FINANCE" TO TEST-INPUT(7). MOVE "Y" TO EXPECTED-VALID(7). MOVE "Department identifier" TO TEST-DESCRIPTION(7). *> Test case 8: Stock symbol MOVE "AAPL" TO TEST-INPUT(8). MOVE "Y" TO EXPECTED-VALID(8). MOVE "Stock market symbol" TO TEST-DESCRIPTION(8). *> Test case 9: Currency code MOVE "USD" TO TEST-INPUT(9). MOVE "Y" TO EXPECTED-VALID(9). MOVE "Currency identifier" TO TEST-DESCRIPTION(9). *> Test case 10: Invalid with special chars MOVE "COMP-TECH" TO TEST-INPUT(10). MOVE "N" TO EXPECTED-VALID(10). MOVE "Name with hyphen" TO TEST-DESCRIPTION(10). *> Test case 11: Single character MOVE "A" TO TEST-INPUT(11). MOVE "Y" TO EXPECTED-VALID(11). MOVE "Single uppercase letter" TO TEST-DESCRIPTION(11). *> Test case 12: Empty string MOVE SPACES TO TEST-INPUT(12). MOVE "N" TO EXPECTED-VALID(12). MOVE "Empty field" TO TEST-DESCRIPTION(12). *> Test case 13: Maximum length valid MOVE "VERYLONGCOMPANYNAMEHERE" TO TEST-INPUT(13). MOVE "Y" TO EXPECTED-VALID(13). MOVE "Long uppercase string" TO TEST-DESCRIPTION(13). *> Test case 14: Punctuation included MOVE "COMPANY!" TO TEST-INPUT(14). MOVE "N" TO EXPECTED-VALID(14). MOVE "Name with exclamation" TO TEST-DESCRIPTION(14). *> Test case 15: Government agency MOVE "NASA" TO TEST-INPUT(15). MOVE "Y" TO EXPECTED-VALID(15). MOVE "Government agency code" TO TEST-DESCRIPTION(15). DISPLAY " Initialized 15 comprehensive test cases". DISPLAY " ". EXECUTE-BASIC-VALIDATION-TESTS. DISPLAY "2. Executing Basic Validation Tests:". DISPLAY " =================================". PERFORM VARYING CURRENT-TEST-NUM FROM 1 BY 1 UNTIL CURRENT-TEST-NUM > 15 MOVE TEST-INPUT(CURRENT-TEST-NUM) TO FIELD-CONTENT IF FIELD-CONTENT IS ALPHABETIC-UPPER MOVE "VALID" TO VALIDATION-RESULT ELSE MOVE "INVALID" TO VALIDATION-RESULT END-IF ADD 1 TO TOTAL-VALIDATIONS EVALUATE TRUE WHEN EXPECTED-VALID(CURRENT-TEST-NUM) = "Y" AND VALIDATION-RESULT = "VALID" ADD 1 TO SUCCESSFUL-TESTS DISPLAY " Test " CURRENT-TEST-NUM ": PASS - '" FIELD-CONTENT "' (" TEST-DESCRIPTION(CURRENT-TEST-NUM) ")" WHEN EXPECTED-VALID(CURRENT-TEST-NUM) = "N" AND VALIDATION-RESULT = "INVALID" ADD 1 TO SUCCESSFUL-TESTS DISPLAY " Test " CURRENT-TEST-NUM ": PASS - '" FIELD-CONTENT "' correctly rejected" WHEN OTHER ADD 1 TO FAILED-TESTS DISPLAY " Test " CURRENT-TEST-NUM ": FAIL - '" FIELD-CONTENT "' unexpected result" END-EVALUATE END-PERFORM. COMPUTE VALIDATION-ACCURACY = (SUCCESSFUL-TESTS / TOTAL-VALIDATIONS) * 100. DISPLAY " ". DISPLAY " Validation Test Results:". DISPLAY " Total tests executed: " TOTAL-VALIDATIONS. DISPLAY " Successful validations: " SUCCESSFUL-TESTS. DISPLAY " Failed validations: " FAILED-TESTS. DISPLAY " Accuracy percentage: " VALIDATION-ACCURACY "%". DISPLAY " ". DEMONSTRATE-CHARACTER-ANALYSIS. DISPLAY "3. Character Analysis Demonstration:". DISPLAY " =================================". MOVE "APPLE Inc. 2023!" TO FIELD-CONTENT. MOVE 0 TO UPPERCASE-LETTERS LOWERCASE-LETTERS NUMERIC-DIGITS SPECIAL-CHARACTERS WHITESPACE-COUNT. COMPUTE STRING-LENGTH = FUNCTION LENGTH(FUNCTION TRIM(FIELD-CONTENT)). DISPLAY " Analyzing string: '" FIELD-CONTENT "'". DISPLAY " String length: " STRING-LENGTH " characters". PERFORM VARYING CHARACTER-POSITION FROM 1 BY 1 UNTIL CHARACTER-POSITION > STRING-LENGTH MOVE FIELD-CONTENT(CHARACTER-POSITION:1) TO PROCESSING-CHAR EVALUATE TRUE WHEN PROCESSING-CHAR IS ALPHABETIC-UPPER ADD 1 TO UPPERCASE-LETTERS WHEN PROCESSING-CHAR IS ALPHABETIC-LOWER ADD 1 TO LOWERCASE-LETTERS WHEN PROCESSING-CHAR IS NUMERIC ADD 1 TO NUMERIC-DIGITS WHEN PROCESSING-CHAR = SPACE ADD 1 TO WHITESPACE-COUNT WHEN OTHER ADD 1 TO SPECIAL-CHARACTERS END-EVALUATE END-PERFORM. COMPUTE TOTAL-CHARACTERS = UPPERCASE-LETTERS + LOWERCASE-LETTERS + NUMERIC-DIGITS + SPECIAL-CHARACTERS + WHITESPACE-COUNT. DISPLAY " Detailed character breakdown:". DISPLAY " Uppercase letters (A-Z): " UPPERCASE-LETTERS. DISPLAY " Lowercase letters (a-z): " LOWERCASE-LETTERS. DISPLAY " Numeric digits (0-9): " NUMERIC-DIGITS. DISPLAY " Whitespace characters: " WHITESPACE-COUNT. DISPLAY " Special characters: " SPECIAL-CHARACTERS. DISPLAY " Total character count: " TOTAL-CHARACTERS. IF UPPERCASE-LETTERS = TOTAL-CHARACTERS DISPLAY " Classification: PURE UPPERCASE" ELSE IF LOWERCASE-LETTERS = TOTAL-CHARACTERS DISPLAY " Classification: PURE LOWERCASE" ELSE IF UPPERCASE-LETTERS > 0 AND LOWERCASE-LETTERS > 0 DISPLAY " Classification: MIXED CASE" ELSE DISPLAY " Classification: NON-ALPHABETIC" END-IF. DISPLAY " ". VALIDATE-CORPORATE-DATA. DISPLAY "4. Corporate Data Validation:". DISPLAY " ==========================". *> Initialize sample corporate data MOVE "APPLE INC" TO COMPANY-NAME. MOVE "AAPL" TO STOCK-SYMBOL. MOVE "FINANCE" TO DEPARTMENT-CODE. MOVE "EXEC" TO EMPLOYEE-GRADE. MOVE "NYC" TO LOCATION-CODE. MOVE "USD" TO CURRENCY-CODE. DISPLAY " Corporate Data Validation Requirements:". DISPLAY " - Stock symbols must be uppercase letters only". DISPLAY " - Department codes must be uppercase letters". DISPLAY " - Employee grades must be uppercase letters". DISPLAY " - Location codes must be uppercase letters". DISPLAY " - Currency codes must be uppercase letters". DISPLAY " ". *> Validate stock symbol MOVE "STOCK-SYMBOL" TO FIELD-NAME. MOVE STOCK-SYMBOL TO FIELD-CONTENT. PERFORM VALIDATE-UPPERCASE-FIELD. *> Validate department code MOVE "DEPARTMENT-CODE" TO FIELD-NAME. MOVE DEPARTMENT-CODE TO FIELD-CONTENT. PERFORM VALIDATE-UPPERCASE-FIELD. *> Validate employee grade MOVE "EMPLOYEE-GRADE" TO FIELD-NAME. MOVE EMPLOYEE-GRADE TO FIELD-CONTENT. PERFORM VALIDATE-UPPERCASE-FIELD. *> Validate location code MOVE "LOCATION-CODE" TO FIELD-NAME. MOVE LOCATION-CODE TO FIELD-CONTENT. PERFORM VALIDATE-UPPERCASE-FIELD. *> Validate currency code MOVE "CURRENCY-CODE" TO FIELD-NAME. MOVE CURRENCY-CODE TO FIELD-CONTENT. PERFORM VALIDATE-UPPERCASE-FIELD. DISPLAY " ". VALIDATE-UPPERCASE-FIELD. MOVE 0 TO FIRST-INVALID-POS. MOVE SPACES TO INVALID-CHARACTER ERROR-DETAILS. IF FIELD-CONTENT IS ALPHABETIC-UPPER MOVE "VALID" TO VALIDATION-RESULT STRING "Field contains only uppercase letters" DELIMITED BY SIZE INTO ERROR-DETAILS ELSE MOVE "INVALID" TO VALIDATION-RESULT PERFORM LOCATE-FIRST-NON-UPPERCASE-CHAR STRING "Non-uppercase character '" INVALID-CHARACTER "' found at position " FIRST-INVALID-POS DELIMITED BY SIZE INTO ERROR-DETAILS END-IF. DISPLAY " " FIELD-NAME ": '" FIELD-CONTENT "' - " VALIDATION-RESULT. DISPLAY " Details: " ERROR-DETAILS. LOCATE-FIRST-NON-UPPERCASE-CHAR. COMPUTE STRING-LENGTH = FUNCTION LENGTH(FUNCTION TRIM(FIELD-CONTENT)). PERFORM VARYING CHARACTER-POSITION FROM 1 BY 1 UNTIL CHARACTER-POSITION > STRING-LENGTH OR FIRST-INVALID-POS > 0 MOVE FIELD-CONTENT(CHARACTER-POSITION:1) TO PROCESSING-CHAR IF PROCESSING-CHAR IS NOT ALPHABETIC-UPPER MOVE CHARACTER-POSITION TO FIRST-INVALID-POS MOVE PROCESSING-CHAR TO INVALID-CHARACTER END-IF END-PERFORM. DEMONSTRATE-BUSINESS-RULES. DISPLAY "5. Business Rule Implementation:". DISPLAY " =============================". DISPLAY " Uppercase Validation Rules in Practice:". *> Demonstrate different validation scenarios MOVE "VALID123" TO FIELD-CONTENT. DISPLAY " Testing: '" FIELD-CONTENT "'". PERFORM COMPREHENSIVE-FIELD-ANALYSIS. MOVE "MixedCase" TO FIELD-CONTENT. DISPLAY " Testing: '" FIELD-CONTENT "'". PERFORM COMPREHENSIVE-FIELD-ANALYSIS. MOVE "ALLUPPERCASE" TO FIELD-CONTENT. DISPLAY " Testing: '" FIELD-CONTENT "'". PERFORM COMPREHENSIVE-FIELD-ANALYSIS. MOVE "COMPANY-NAME" TO FIELD-CONTENT. DISPLAY " Testing: '" FIELD-CONTENT "'". PERFORM COMPREHENSIVE-FIELD-ANALYSIS. DISPLAY " ". COMPREHENSIVE-FIELD-ANALYSIS. COMPUTE STRING-LENGTH = FUNCTION LENGTH(FUNCTION TRIM(FIELD-CONTENT)). IF FIELD-CONTENT IS ALPHABETIC-UPPER DISPLAY " Result: VALID - All uppercase letters" DISPLAY " Recommendation: Approved for processing" ELSE DISPLAY " Result: INVALID - Contains non-uppercase characters" DISPLAY " Issues identified:". PERFORM VARYING CHARACTER-POSITION FROM 1 BY 1 UNTIL CHARACTER-POSITION > STRING-LENGTH MOVE FIELD-CONTENT(CHARACTER-POSITION:1) TO PROCESSING-CHAR IF PROCESSING-CHAR IS NOT ALPHABETIC-UPPER EVALUATE TRUE WHEN PROCESSING-CHAR IS ALPHABETIC-LOWER DISPLAY " Position " CHARACTER-POSITION ": '" PROCESSING-CHAR "' (lowercase letter)" WHEN PROCESSING-CHAR IS NUMERIC DISPLAY " Position " CHARACTER-POSITION ": '" PROCESSING-CHAR "' (numeric digit)" WHEN PROCESSING-CHAR = SPACE DISPLAY " Position " CHARACTER-POSITION ": (space character)" WHEN OTHER DISPLAY " Position " CHARACTER-POSITION ": '" PROCESSING-CHAR "' (special character)" END-EVALUATE END-IF END-PERFORM DISPLAY " Recommendation: Requires correction" END-IF. DISPLAY-COMPREHENSIVE-RESULTS. DISPLAY "6. Comprehensive Results Summary:". DISPLAY " ===============================". DISPLAY " ALPHABETIC-UPPER Class Characteristics:". DISPLAY " - Validates uppercase letters A-Z exclusively". DISPLAY " - Returns TRUE only if ALL characters are uppercase". DISPLAY " - Spaces, numbers, and symbols cause FALSE result". DISPLAY " - Empty or null fields return FALSE". DISPLAY " - Case-sensitive and strict validation". DISPLAY " ". DISPLAY " Enterprise Applications:". DISPLAY " - Corporate identifier validation". DISPLAY " - Stock symbol verification". DISPLAY " - Department code standardization". DISPLAY " - Currency code validation". DISPLAY " - Business rule enforcement". DISPLAY " - Data quality assurance". DISPLAY " ". DISPLAY " Performance Summary:". DISPLAY " Test cases executed: " TOTAL-VALIDATIONS. DISPLAY " Validation accuracy: " VALIDATION-ACCURACY "%". DISPLAY " Character analysis completed successfully".