Сохраняйте структуру РАБОЧЕГО ХРАНИЛИЩА неизменной. Однако ваши элементы данных не A-COL, а THE-CONTENT. Так что используйте THE-CONTENT, а не A-COL.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DIFF PIC S9(3).
01 ARRAY.
05 A-ROW
OCCURS 99 TIMES.
10 A-COL
OCCURS 2 TIMES.
15 TABLE-CONTENT PIC 9(3).
PROCEDURE DIVISION.
MOVE 1 TO TABLE-CONTENT ( 1 1 )
MOVE 2 TO TABLE-CONTENT ( 2 1 )
DISPLAY
">"
TABLE-CONTENT ( 1 1 )
"<"
COMPUTE DIFF = TABLE-CONTENT ( 1 1 )
- TABLE-CONTENT ( 2 1 )
DISPLAY
">"
DIFF
"<"
STOP RUN
.
Ваша структура лучше, потому что ее легче поддерживать. Если вы когда-нибудь захотите ПЕРЕОПРЕДЕЛИТЬ ТАБЛИЧНОЕ СОДЕРЖИМОЕ, вы можете это сделать, не меняя структуру. Не так, если сейчас "усложнить" структуру.
Да, если вы ПЕРЕМЕЩАЕТЕ числовой литерал в элемент группы, выполняется буквенно-цифровое ПЕРЕМЕЩЕНИЕ, результатом будет ваш литерал, выровненный по левому краю и дополненный пробелом справа, или усеченный справа, или просто подходящий, в зависимости от размера вашего литерала.
Хотя концептуально у вас есть «столбцы» в вашей таблице (COBOL не имеет массивов, у него есть таблицы с OCCURS), имейте в виду, что вы не можете получить доступ к столбцу как целому. В хранилище у вас есть строка-1-столбец-1, строка-1-столбец-2, строка-2-столбец-1, строка-2-столбец-2 до строки-99-столбец-1, строка-99-столбец -2.
Любая арифметика (ADD, SUBTRACT, MULTIPLY, DIVIDE и COMPUTE) может использовать только числовые поля или литералы в качестве исходных данных. Недостаточно, чтобы поле содержало «число», оно должно быть числовым полем.
ДАВЛЕНИЕ (ДОБАВЛЕНИЕ, ВЫЧИТАНИЕ, УМНОЖЕНИЕ и ДЕЛЕНИЕ) может поместить результат в нечисловое поле определенного типа, числовое редактируемое поле. Это поле с предложением PICture, содержащим числовые символы PICture для редактирования.
person
Bill Woodger
schedule
17.01.2016