Cours COBOL - Accueil

Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.

Info : Ce module vous permet d’accéder rapidement aux contenus essentiels de la formation COBOL.
Retour au plan général

Déclarer des variables en working-storage et structurer des champs hiérarchiques

Dans un programme COBOL, la  WORKING-STORAGE SECTION.  sert à réserver des zones mémoire pour stocker des valeurs pendant l’exécution : texte, nombres, compteurs, et aussi des données “composées” construites à partir de sous-champs.

Zone alphanumérique

Une zone  PIC X( n )  peut contenir du texte (lettres, chiffres, symboles) sur une longueur donnée. La valeur initiale est utile pour les démonstrations et les tests.

Zones numériques

Une zone  PIC 9  représente un chiffre, et une zone  PIC 9( n )  représente un nombre sur plusieurs positions. L’initialisation à zéro est fréquente pour les compteurs et totaux.

Exemple complet : variables simples + champ composé

L’extrait suivant montre trois familles de données : un texte, des nombres, puis un identifiant composé (hiérarchie). Les noms ont été choisis pour être parlants, et les tailles sont réalistes pour des exercices débutants.


 DATA DIVISION.
 WORKING-STORAGE SECTION.

*> Zone texte : jusqu'à 24 caractères, avec une valeur de départ
 01 WS-UTILISATEUR          PIC X( 24 ) VALUE "Visiteur".

*> Deux chiffres isolés : pratiques pour des tests rapides (0 à 9)
 01 WS-CHIFFRE-A          PIC 9 VALUE ZERO.
 01 WS-CHIFFRE-B          PIC 9 VALUE ZERO.

*> Total sur 3 positions : de 000 à 999, initialisé à 0
 01 WS-TOTAL-POINTS        PIC 9( 3 ) VALUE 0.

*> Identifiant composé : un champ 01 découpé en sous-champs 02
 01 WS-ID-CLIENT.
    02 WS-ID-ZONE         PIC 9( 2 ) VALUE 12.
    02 WS-ID-GROUPE        PIC 9( 2 ) VALUE 34.
    02 WS-ID-SERIE         PIC 9( 4 ) VALUE 5678.
            

Pourquoi utiliser un champ hiérarchique

Un champ hiérarchique (niveau  01  contenant plusieurs  02 ) sert à deux choses :

  • Lire / écrire en “morceaux” : on peut manipuler séparément la zone, le groupe, la série…
  • Manipuler en bloc : on peut traiter l’identifiant complet comme une seule donnée, par exemple pour l’afficher ou l’écrire dans un enregistrement.

Exemple d’affichage (logique) : on peut afficher le bloc complet ou un sous-champ. Cela rend le débogage plus simple quand on apprend.


 PROCEDURE DIVISION.
    DISPLAY "Utilisateur : " WS-UTILISATEUR.
    DISPLAY "ID complet : " WS-ID-CLIENT.
    DISPLAY "Zone : " WS-ID-ZONE.
    STOP RUN.
            

Astuce d'initialisation

Quand une variable est réutilisée dans une boucle ou une série de traitements, l’état précédent peut polluer le résultat. Initialiser clairement les zones au début d’un traitement (ou avant une réutilisation) évite des erreurs difficiles à repérer. Pour les numériques,  ZERO  ou  ZEROS  simplifie la mise à zéro ; pour le texte,  SPACES  nettoie le champ.

Mini-quiz

  1. Quelle clause  PIC  utiliseriez-vous pour stocker un texte de 40 caractères ?
  2. Quelle différence pratique voyez-vous entre  PIC 9  et  PIC 9( 3 )  ?
  3. Quel est l’intérêt d’un champ hiérarchique quand on doit stocker un identifiant composé de plusieurs parties ?

↑ Haut