Passer au contenu principal
eLearner.app
Module 4 · Leçon 2 sur 28/10 dans le cours~15 min
Leçons du module (2/2)

Tableaux et Clause OCCURS

En COBOL, il n’existe pas de mot-clé "array" ou "vecteur" pour définir des listes de données homogènes. Pour cet usage, on utilise la clause OCCURS, qui spécifie le nombre de fois qu’une variable ou une structure se répète en mémoire.

Définition d’un tableau avec OCCURS

La clause OCCURS est ajoutée à la déclaration d’une variable subordonnée (par exemple, de niveau 05 ou supérieur) au sein d’une structure de groupe (niveau 01) :

Code
01 WS-SALES-DATA.
    05 WS-MONTHLY-SALES PIC 9(4) OCCURS 12 TIMES.

Dans cet exemple, WS-MONTHLY-SALES est un tableau formé de 12 éléments numériques de 4 chiffres chacun. La mémoire allouée pour cet enregistrement sera d’exactement 12 * 4 = 48 caractères.

Accès aux éléments et indices

Pour accéder à un élément spécifique d’un tableau, on indique l’indice entre parenthèses immédiatement après le nom du champ.

[!IMPORTANT] Contrairement à la plupart des langages modernes qui utilisent des indices à base 0, COBOL utilise des indices à base 1. Le premier élément se trouve à l’indice 1, le deuxième à l’indice 2, et ainsi de suite.

Code
MOVE 1500 TO WS-MONTHLY-SALES(1).
MOVE 2400 TO WS-MONTHLY-SALES(2).

Parcours d’un tableau (Itération)

Pour parcourir les éléments d’un tableau, on peut utiliser l’instruction PERFORM VARYING ou gérer manuellement un compteur dans une boucle PERFORM UNTIL :

Code
PERFORM UNTIL WS-INDEX > 12
    DISPLAY "Sales: " WS-MONTHLY-SALES(WS-INDEX)
    ADD 1 TO WS-INDEX
END-PERFORM.

À vous de jouer

Exercice#cobol.m4.l2.e1
Tentatives : 0Chargement…

Déclarez un tableau de 5 températures décimales (3 chiffres entiers et 1 décimale) sous la structure de groupe WS-WEATHER-DATA en utilisant la clause OCCURS.

Chargement de l'éditeur…
Afficher l'indice

Écrivez : 05 WS-TEMPERATURE PIC 9(3)V9 OCCURS 5 TIMES.

Solution disponible après 3 tentatives

Exercice#cobol.m4.l2.e2
Tentatives : 0Chargement…

Initialisez les trois premiers éléments du tableau WS-MONTHLY-SALES avec les valeurs 1200, 1500 et 1800 respectivement à l’aide d’instructions MOVE. Rappelez-vous que les indices en COBOL commencent à 1.

Chargement de l'éditeur…
Afficher l'indice

Utilisez MOVE 1200 TO WS-MONTHLY-SALES(1). pour le premier élément, puis répétez pour le deuxième et le troisième en utilisant les indices (2) et (3).

Solution disponible après 3 tentatives