Leçons du module (1/2)
Enregistrements et Structures de Groupe
En COBOL, les variables élémentaires peuvent être regroupées au sein d’une structure hiérarchique appelée structure de groupe ou enregistrement (record). Cela permet de traiter un ensemble de données liées soit comme une seule entité (par exemple, pour les copier ou les afficher), soit comme des champs individuels distincts.
Numéros de niveau et relations hiérarchiques
Pour définir un enregistrement, on utilise les numéros de niveau dans la DATA DIVISION :
- Niveau
01: Définit l’enregistrement principal (le nom du groupe). Il ne possède pas de clausePICTUREpropre, car sa taille est déterminée par la somme des champs internes. - Niveaux subordonnés (
05,10,15etc.) : Identifient les champs subordonnés appartenant au groupe de niveau supérieur. Il peut s’agir de variables élémentaires (avec la clausePIC) ou, à leur tour, d’autres groupes (sous-enregistrements).
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.
Dans cet exemple, WS-EMPLOYEE-RECORD est une structure de groupe contenant trois champs subordonnés. Si nous faisons référence à WS-EMPLOYEE-RECORD, nous lisons ou écrivons les 8 + 20 + 5 = 33 caractères de l’enregistrement en une seule fois.
L’instruction MOVE et les structures de groupe
Nous pouvons valoriser les champs élémentaires individuels :
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.
Ou nous pouvons copier un enregistrement entier dans un autre enregistrement compatible en une seule opération :
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.
À vous de jouer
Déclarez une structure de groupe 01 nommée WS-STUDENT-RECORD contenant trois champs subordonnés de niveau 05 : WS-STUDENT-ID (numérique de 5 chiffres), WS-STUDENT-NAME (alphanumérique de 15 caractères) et WS-STUDENT-GPA (numérique avec 1 chiffre entier et 2 décimales).
Afficher l'indice
Utilisez la syntaxe correcte : 01 WS-STUDENT-RECORD. (avec un point et sans PIC), suivi à la ligne des niveaux 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). et 05 WS-STUDENT-GPA PIC 9(1)V99.
Solution disponible après 3 tentatives
Complétez la PROCEDURE DIVISION en déplaçant la valeur 10023 dans WS-EMP-ID, le texte 'JOHN DOE' dans WS-EMP-NAME, puis affichez la structure de groupe WS-EMPLOYEE-RECORD à l’aide de DISPLAY.
Afficher l'indice
Utilisez MOVE 10023 TO WS-EMP-ID. et MOVE 'JOHN DOE' TO WS-EMP-NAME. pour valoriser les variables, puis écrivez DISPLAY WS-EMPLOYEE-RECORD. et enfin STOP RUN.
Solution disponible après 3 tentatives