Уроки модуля (1/2)
Групповые элементы и записи
В языке COBOL элементарные переменные можно сгруппировать в иерархическую структуру, называемую элементом группы или записью. Это позволяет обрабатывать набор связанных данных либо как единую сущность (например, копировать или отображать их), либо как отдельные поля.
Номера уровней и иерархические отношения
Чтобы определить запись, вы используете номера уровней в DATA DIVISION:
- Уровень
01: определяет основную запись (имя группы). У него нет собственного предложенияPICTURE, поскольку его размер определяется суммой его внутренних полей. - Подчиненные уровни (
05,10,15и т. д.): определите подчиненные поля, принадлежащие группе более высокого уровня. Это могут быть элементарные переменные (с предложениемPIC) или, в свою очередь, другие элементы группы (подзаписи).
01 WS-EMPLOYEE-RECORD.
05 WS-EMP-ID PIC 9(5).
05 WS-EMP-NAME PIC X(20).
05 WS-EMP-SALARY PIC 9(6)V99.В этом примере WS-EMPLOYEE-RECORD представляет собой групповую структуру, содержащую три подчиненных поля. Если мы ссылаемся на WS-EMPLOYEE-RECORD, мы читаем или записываем все 5 + 20 + 8 = 33 символа записи одновременно.
Оператор MOVE и элементы группы
Мы можем присваивать значения отдельным элементарным полям:
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.Или мы можем скопировать всю запись в другую совместимую запись за одну операцию:
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.Попробуйте сами
Объявите групповую структуру 01 с именем WS-STUDENT-RECORD, содержащую три подполя уровня 05: WS-STUDENT-ID (числовое из 5 цифр), WS-STUDENT-NAME (буквенно-цифровое из 15 символов) и WS-STUDENT-GPA (числовое с 1 целой цифрой и 2 десятичными знаками).
Показать подсказку
Используйте синтаксис: 01 WS-СТУДЕНТ-ЗАПИСЬ. (с точкой и без PIC), за которым в следующих строках следует уровень 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). и 05 WS-СТУДЕНТ-GPA PIC 9(1)V99.
Решение доступно после 3 попыток
Завершите РАЗДЕЛЕНИЕ ПРОЦЕДУРЫ, переместив значение 10023 в WS-EMP-ID, текст «JOHN DOE» в WS-EMP-NAME и, наконец, отобразите структуру группы WS-EMPLOYEE-RECORD с помощью DISPLAY.
Показать подсказку
Используйте MOVE 10023 TO WS-EMP-ID. и ПЕРЕМЕЩИТЕ «ДЖОН ДОУ» НА WS-EMP-NAME. чтобы присвоить значения, затем напишите DISPLAY WS-EMPLOYEE-RECORD. и, наконец, СТОП БЕГ.
Решение доступно после 3 попыток