Przejdź do głównej treści
eLearner.app
Moduł 4 · Lekcja 1 z 27/10 w kursie~12 min
Lekcje modułu (1/2)

Rekordy i Struktury Grupowe

W COBOL-u podstawowe zmienne elementarne można grupować wewnątrz struktury hierarchicznej zwanej strukturą grupową lub rekordem (record). Pozwala to na traktowanie zestawu powiązanych danych zarówno jako pojedynczej jednostki (na przykład w celu ich skopiowania lub wyświetlenia), jak i poszczególnych pól z osobna.

Numery poziomów i relacje hierarchiczne

Do zdefiniowania rekordu używa się numerów poziomów w sekcji DATA DIVISION:

  • Poziom 01: Definiuje rekord główny (nazwę grupy). Nie posiada własnej klauzuli PICTURE, ponieważ jego rozmiar jest określony przez sumę pól wewnętrznych.
  • Poziomy podrzędne (05, 10, 15 itd.): Identyfikują pola podrzędne należące do grupy wyższego poziomu. Mogą to być zmienne elementarne (z klauzulą PIC) lub kolejne grupy (podrekordy).
Code
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.

W tym przykładzie WS-EMPLOYEE-RECORD to struktura grupowa zawierająca trzy pola podrzędne. Jeśli odwołujemy się do WS-EMPLOYEE-RECORD, odczytujemy lub zapisujemy wszystkie 8 + 20 + 5 = 33 znaki rekordu jednocześnie.

Instrukcja MOVE i struktury grupowe

Możemy przypisywać wartości do poszczególnych pól elementarnych:

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

Możemy też skopiować cały rekord do innego kompatyinalnego rekordu w jednej operacji:

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

Spróbuj sam

Ćwiczenie#cobol.m4.l1.e1
Próby: 0Ładowanie...

Zadeklaruj strukturę grupową 01 o nazwie WS-STUDENT-RECORD zawierającą trzy pola podrzędne poziomu 05: WS-STUDENT-ID (numeryczne o długości 5 cyfr), WS-STUDENT-NAME (alfanumeryczne o długości 15 znaków) i WS-STUDENT-GPA (numeryczne z 1 cyfrą całkowitą i 2 dziesiętnymi).

Ładowanie edytora...
Pokaż wskazówkę

Użyj poprawnej składni: 01 WS-STUDENT-RECORD. (z kropką i bez PIC), a pod spodem w kolejnych liniach poziomy 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). oraz 05 WS-STUDENT-GPA PIC 9(1)V99.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#cobol.m4.l1.e2
Próby: 0Ładowanie...

Uzupełnij PROCEDURE DIVISION, przenosząc wartość 10023 do WS-EMP-ID, tekst 'JOHN DOE' do WS-EMP-NAME, a na koniec wyświetl strukturę grupową WS-EMPLOYEE-RECORD za pomocą DISPLAY.

Ładowanie edytora...
Pokaż wskazówkę

Użyj MOVE 10023 TO WS-EMP-ID. oraz MOVE 'JOHN DOE' TO WS-EMP-NAME. do nadania wartości zmiennym, następnie wpisz DISPLAY WS-EMPLOYEE-RECORD. i na końcu STOP RUN.

Rozwiązanie dostępne po 3 próbach