Apprendre COBOL – Les bases

ADD, SUBTRACT, MULTIPLY, DIVIDE et COMPUTE

Les verbes arithmétiques ADD, SUBTRACT, MULTIPLY et DIVIDE permettent d'effectuer des opérations de base sur des nombres en COBOL. Le verbe plus moderne COMPUTE gère des expressions complexes avec parenthèses et opérateurs (+, -, *, /, **). Ces instructions s'utilisent dans la PROCEDURE DIVISION pour manipuler des variables numériques déclarées en DATA DIVISION.

Exemple de code : Calculatrice simple

IDENTIFICATION DIVISION.
PROGRAM-ID. CALCULS-EXEMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  NOMBRE1               PIC 9(3)V99 VALUE 10.50.
01  NOMBRE2               PIC 9(3)V99 VALUE 5.25.
01  RESULTAT-ADD          PIC 9(4)V99.
01  RESULTAT-SUB          PIC 9(4)V99.
01  RESULTAT-MUL          PIC 9(4)V99.
01  RESULTAT-DIV          PIC 9(4)V99.
01  RESULTAT-COMPUTE      PIC 9(5)V99.

PROCEDURE DIVISION.
    ADD NOMBRE1 NOMBRE2 TO RESULTAT-ADD.
    SUBTRACT NOMBRE2 FROM NOMBRE1 GIVING RESULTAT-SUB.
    MULTIPLY NOMBRE1 BY NOMBRE2 GIVING RESULTAT-MUL.
    DIVIDE NOMBRE1 BY NOMBRE2 GIVING RESULTAT-DIV.
    COMPUTE RESULTAT-COMPUTE = ( ((NOMBRE1 + NOMBRE2) * (2 ** 2)) / 3 ).

    DISPLAY "Addition : " RESULTAT-ADD.
    DISPLAY "Soustraction : " RESULTAT-SUB.
    DISPLAY "Multiplication : " RESULTAT-MUL.
    DISPLAY "Division : " RESULTAT-DIV.
    DISPLAY "Compute complexe : " RESULTAT-COMPUTE.

    STOP RUN.
        
Télécharger le code

Résultat attendu à l'exécution

La sortie dans la console sera :

Addition : 0015.75
Soustraction : 0005.25
Multiplication : 0055.12
Division : 0002.00
Compute complexe : 0021.00
        

Note : Les résultats sont affichés avec des zéros à gauche selon la taille du PIC (on verra comment formater mieux plus tard).

Explication détaillée – ligne par ligne (focus sur les verbes arithmétiques)

Points clés pour débutants :
• Toutes les variables doivent être numériques (PIC 9... ou PIC S9... pour négatifs).
• Attention aux décimales : le PIC de la destination doit avoir assez de places (avant/après V).
COMPUTE est recommandé pour les nouveaux programmes car plus lisible.
• Testez toujours avec des valeurs pour éviter les débordements (overflow).

Prochain sujet : Conditions et branchements avec IF, ELSE et EVALUATE.