Index du tour guidé

Bienvenue dans la formation COBOL

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
Navigation rapide
Utilisez ces boutons si vous voulez accéder directement à une page, sans parcourir les cartes.
1 2 3 4 5 6 7 8 9 10

Leçon 2 : variables et formats avec la clause picture

Objectif : apprendre à décrire une variable en Cobol (taille, type, signe, décimales) avec  PIC , puis tester vos premières valeurs.

Débutant Types Exercices
🎯
Idée clé
En Cobol, une variable n’est pas “un simple nom” : c’est une zone mémoire dont vous fixez à l’avance la taille et le format. C’est ce contrat qui rend les traitements fiables.
🧠

Conceptualiser

PIC

La clause  PIC  (picture) décrit la forme d’une donnée. Vous indiquez ce que la zone peut contenir et combien de caractères/chiffres.

🔤
 PIC  X(n) 
Texte “général” (alphanumérique) : lettres, chiffres, symboles.
🅰️
 PIC  A(n) 
Texte alphabétique (lettres), comportement dépendant du compilateur et des options.
🔢
 PIC  9(n) 
Numérique : uniquement des chiffres. Exemple :  9(3)  = 3 chiffres.
➕➖
 S  et  V 
 S  ajoute un signe,  V  indique des décimales implicites (virgule “virtuelle”, non stockée comme caractère).
⚠️
Attention à la taille
Un champ  PIC  9(1)  ne peut stocker que 0 à 9. Si vous tentez de mettre 10, vous forcez un dépassement ou une troncature selon le contexte.
🧪

Opérer

Déclarer et afficher

Ce programme déclare des variables, affecte des valeurs et les affiche. Il illustre texte, numérique et monétaire.

🧾Fichier : demo-pic.cbl
Cobol (format libre)

 >>SOURCE FORMAT FREE
 IDENTIFICATION DIVISION.
 PROGRAM-ID. DEMO-PIC.

 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 WS-NOM        PIC X(20)  VALUE SPACES.
 01 WS-PRENOM     PIC A(10)  VALUE SPACES.
 01 WS-AGE        PIC 9(3)   VALUE 0.
 01 WS-SOLDE      PIC S9(5)V99 VALUE 0.

 PROCEDURE DIVISION.
    MOVE "DURAND" TO WS-NOM
    MOVE "ALAIN"  TO WS-PRENOM
    MOVE 42       TO WS-AGE
    MOVE -125050  TO WS-SOLDE

    DISPLAY "Nom    : " WS-NOM
    DISPLAY "Prenom : " WS-PRENOM
    DISPLAY "Age    : " WS-AGE
    DISPLAY "Solde  : " WS-SOLDE
    STOP RUN.
▶️ Compilation (exemple)
cobc -x -free demo-pic.cbl
Lancez ensuite le programme généré par votre environnement (souvent ./demo-pic).
✅ Ce que vous validez
  • Déclarations  PIC 
  • Initialisation  VALUE 
  • Affectations  MOVE 
  • Affichages  DISPLAY 
🧯

Déboguer

Erreurs typiques

La clause  PIC  impose un contrat strict. Ces erreurs arrivent très vite quand on teste des valeurs.

  • Valeur trop longue dans un champ trop court : risque de troncature ou d’erreur selon options.
  • Champ numérique trop petit :  PIC  9(1)  ne peut pas contenir 10.
  • Confusion texte/numérique : un champ  PIC  9  n’accepte pas “AB”.
🔎 Astuce de diagnostic

Quand un résultat semble “bizarre”, vérifiez d’abord : la taille, puis le type (X/A/9), puis la présence d’un  S  ou d’un  V .

🧭

Expliquer et explorer

Pratique

Cobol aime la précision : taille, signe, décimales. Cette discipline rend les traitements stables, notamment en gestion et en batch.

📐 Règle simple
Déclarez toujours un peu plus large que votre besoin immédiat quand vous débutez, puis resserrez quand vous maîtrisez les limites.

🧩 Exercices (à faire tout de suite)

  1. Créez un champ  PIC  9(2)  et testez  MOVE  de 7 puis 99 puis 100.
  2. Créez un champ monétaire  S9(3)V99  et affichez -12345 (qui représente -123.45).

 WORKING-STORAGE SECTION.
 01 WS-N2 PIC 9(2) VALUE 0.

 PROCEDURE DIVISION.
    MOVE 7 TO WS-N2
    DISPLAY "N2= " WS-N2

    MOVE 99 TO WS-N2
    DISPLAY "N2= " WS-N2

    MOVE 100 TO WS-N2
    DISPLAY "N2= " WS-N2

    STOP RUN.