Exercice 14 : compute

Micro-exercice

Objectif : utiliser COMPUTE pour faire un calcul “en une ligne” avec une expression. C’est très pratique quand vous voulez additionner, soustraire, multiplier et diviser dans le même calcul, tout en gardant un code lisible.

Ce que vous pratiquez

  • Saisir deux valeurs numériques.
  • Appliquer une formule simple avec COMPUTE.
  • Comprendre la priorité des opérations (parenthèses).

Repère sur les colonnes

  • Zone A : colonnes 8 à 11 (7 espaces pour divisions et déclarations).
  • Zone B : colonnes 12 à 72 (11 espaces pour instructions).

Le bloc <pre> conserve les espaces pour un rendu “code réel”.

Exemple minimal COBOL Format fixe
Télécharger le code
       IDENTIFICATION DIVISION.
       PROGRAM-ID. EXO-COMPUTE-14.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-A                 PIC 999 VALUE 000.
       01  WS-B                 PIC 999 VALUE 000.
       01  WS-RESULTAT          PIC 9(6) VALUE 000000.

       PROCEDURE DIVISION.
           DISPLAY "Entrez A (000 a 999) : "
           ACCEPT WS-A
           DISPLAY "Entrez B (000 a 999) : "
           ACCEPT WS-B

           COMPUTE WS-RESULTAT = (WS-A * 2) + (WS-B / 2)

           DISPLAY "Resultat : " WS-RESULTAT
           STOP RUN.

Lecture simple

COMPUTE permet d’écrire une formule. Ici : on prend WS-A, on le multiplie par 2, puis on ajoute la moitié de WS-B. Les parenthèses rendent la formule claire : vous voyez tout de suite les deux morceaux.

À retenir : dans un calcul, la priorité peut surprendre. Utilisez des parenthèses pour être sûr que la formule reflète exactement votre intention.

Votre micro-exercice

Faites ces 3 modifications :

  1. Changez la formule : (WS-A + WS-B) * 3.
  2. Ajoutez un second résultat WS-RESULTAT-2 et calculez : WS-A * WS-B.
  3. Affichez les deux résultats avec des libellés clairs.

Erreur fréquente à éviter

Oublier la taille du résultat. Si vous calculez 999 * 999, vous obtenez 998001. Si votre champ résultat est trop petit, vous perdez des chiffres ou vous obtenez une valeur incohérente.

Autre piège : diviser par 2 avec des champs entiers. Selon les formats, vous pouvez perdre la partie décimale. Pour débuter, ce n’est pas grave : l’objectif est de comprendre la structure de COMPUTE.

Conseil : quand une formule devient longue, écrivez-la d’abord sur papier avec des parenthèses, puis traduisez-la en COMPUTE.