Что такое CHAR ???если это один символ, скажем
03 CHAR pic X.
, вы сравниваете 2-символьное поле с 1-символьным полем, попробуйте изменить таблицу на
01 FILLER REDEFINES WS-ALPHABET-TABLE-DATA.
05 WS-ALPHABET-TABLE OCCURS 52 TIMES
INDEXED BY C.
10 ALPHABET-CHAR PIC X(01).
01 ALPHABET-NUM PIC 99 VALUE ZEROS.
и выполнить поиск на
SET C TO 1.
SEARCH WS-ALPHABET-TABLE
WHEN ALPHABET-CHAR (C) = CHAR
SET ALPHABET-NUM TO C
compute ALPHABET-NUM = (ALPHABET-NUM + 1) / 2
end-compute
DISPLAY CHAR 'IS NUMBER ' ALPHABET-NUM 'IN THE ALPHABET'
END-SEARCH.
в качестве альтернативы вы можете изменить таблицу на
01 FILLER REDEFINES WS-ALPHABET-TABLE-DATA.
05 WS-ALPHABET-TABLE OCCURS 26 TIMES
INDEXED BY C.
10 UPPER-CHAR PIC X(01).
10 LOWER-CHAR PIC X(01).
и поиск
SEARCH WS-ALPHABET-TABLE
WHEN UPPER-CHAR (C) = CHAR or LOWER-CHAR (c) = CHAR
SET ALPHABET-NUM TO C
DISPLAY CHAR 'IS NUMBER ' ALPHABET-NUM 'IN THE ALPHABET'
END-SEARCH.