Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
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.
01 ),
une clause PIC pour la forme, et parfois une valeur initiale.
L’initialisation n’est pas “magique” : elle sert surtout à démarrer dans un état propre.
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.
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.
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.
2 + 2 + 4 = 8 ) correspond bien à la longueur totale
du champ composé WS-ID-CLIENT quand il est utilisé comme un bloc.
Cela garantit une structure cohérente et évite les décalages de mémoire.
Un champ hiérarchique (niveau 01 contenant plusieurs 02 ) sert à deux choses :
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.
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.
PIC utiliseriez-vous pour stocker un texte de 40 caractères ?
PIC 9 et PIC 9( 3 ) ?