Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.
Objectif : apprendre à décrire une variable en Cobol (taille, type, signe, décimales) avec
PIC , puis tester vos premières valeurs.
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)
PIC A(n)
PIC 9(n)
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).
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.
Ce programme déclare des variables, affecte des valeurs et les affiche. Il illustre texte, numérique et monétaire.
>>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.
cobc -x -free demo-pic.cbl
./demo-pic).
PIC VALUE MOVE DISPLAY
La clause PIC impose un contrat strict.
Ces erreurs arrivent très vite quand on teste des valeurs.
PIC 9(1) ne peut pas contenir 10.
PIC 9 n’accepte pas “AB”.
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 .
Cobol aime la précision : taille, signe, décimales. Cette discipline rend les traitements stables, notamment en gestion et en batch.
PIC 9(2) et testez
MOVE de 7 puis 99 puis 100.
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.