Перейти до основного вмісту
Модуль 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-STUDENT-RECORD. (з крапкою та без PIC), за яким у наступних рядках іде рівень 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). та 05 WS-STUDENT-GPA PIC 9(1)V99.

Рішення доступне після 3 спроб

вправи#cobol.m4.l1.e2
Спроби: 0Завантаження…

Завершіть PROCEDURE DIVISION, перемістивши значення 10023 у WS-EMP-ID, текст «JOHN DOE» у WS-EMP-NAME і, нарешті, відобразіть структуру групи WS-EMPLOYEE-RECORD за допомогою DISPLAY.

Завантаження редактора…
Показати підказку

Використовуйте MOVE 10023 TO WS-EMP-ID. і ПЕРЕМІСТИТЬ 'JOHN DOE' ДО WS-EMP-NAME. щоб призначити значення, потім напишіть DISPLAY WS-EMPLOYEE-RECORD. і нарешті STOP RUN.

Рішення доступне після 3 спроб