Модульні уроки (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-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 спроб
Завершіть 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 спроб