Le subscript est un indice numérique classique que vous contrôlez manuellement :
INDEXED BY et SUBSCRIPT : accès aux éléments d’un tableau
En COBOL , vous pouvez accéder aux éléments d’un tableau de deux façons :
INDEXED BY SUBSCRIPT Le subscript est un indice numérique classique que vous contrôlez manuellement :
01 MOIS-DEPENSES.
05 DEPENSE PIC 9(5) OCCURS 12 TIMES.
01 I PIC 99.
MOVE 100 TO DEPENSE(1).
DISPLAY "Dépense 1 : " DEPENSE(1).
Avantages : simple à comprendre, facile à manipuler avec PERFORM VARYING .
Inconvénient : moins rapide qu’un index (accès indirect).
INDEXED BY
L’index est une variable spéciale déclarée dans la définition du tableau. Elle est manipulée uniquement avec les instructions SET , PERFORM VARYING ou les instructions de recherche.
01 TABLEAU-NOTES.
05 NOTE PIC 99 OCCURS 10 TIMES INDEXED BY IDX.
Vous ne pouvez pas écrire NOTE(IDX). Vous devez manipuler l’index avec :
SET IDX TO 1.
MOVE 15 TO NOTE(IDX).
Ou en boucle :
PERFORM VARYING IDX FROM 1 BY 1 UNTIL IDX > 10
DISPLAY "Note : " NOTE(IDX)
END-PERFORM.
| Type | Variable | Déclaration | Manipulation |
|---|---|---|---|
| Subscript | Entier classique | Extérieure au tableau | Utilisable directement |
| Index | Index COBOL | Déclaré dans INDEXED BY |
Avec SET et SEARCH |
SUBSCRIPT pour des boucles simples avec PERFORM VARYING INDEXED BY pour les SEARCH , SEARCH ALL et les accès optimisés SUBSCRIPT avec un tableau déclaré INDEXED BY (erreur de compilation)
En COBOL :
SEARCH et SEARCH ALL .