Перейти к основному содержимому
Модуль 4 · Урок 1 из 27/10 в курсе~12 min
Уроки модуля (1/2)

Групповые элементы и записи

В языке COBOL элементарные переменные можно сгруппировать в иерархическую структуру, называемую элементом группы или записью. Это позволяет обрабатывать набор связанных данных либо как единую сущность (например, копировать или отображать их), либо как отдельные поля.

Номера уровней и иерархические отношения

Чтобы определить запись, вы используете номера уровней в DATA DIVISION:

  • Уровень 01: определяет основную запись (имя группы). У него нет собственного предложения PICTURE, поскольку его размер определяется суммой его внутренних полей.
  • Подчиненные уровни (05, 10, 15 и т. д.): определите подчиненные поля, принадлежащие группе более высокого уровня. Это могут быть элементарные переменные (с предложением PIC) или, в свою очередь, другие элементы группы (подзаписи).
COBOL
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 и элементы группы

Мы можем присваивать значения отдельным элементарным полям:

COBOL
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.

Или мы можем скопировать всю запись в другую совместимую запись за одну операцию:

COBOL
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.

Попробуйте сами

Упражнение#cobol.m4.l1.e1
Попыток: 0Загрузка…

Объявите групповую структуру 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 попыток

Упражнение#cobol.m4.l1.e2
Попыток: 0Загрузка…

Завершите РАЗДЕЛЕНИЕ ПРОЦЕДУРЫ, переместив значение 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 попыток