Exercice 12 : multiply

Micro-exercice

Objectif : utiliser MULTIPLY pour calculer un produit simple. Vous allez saisir un prix unitaire et une quantité, puis calculer un total. C’est un scénario concret : facture, stock, quantité × valeur.

Ce que vous pratiquez

  • Déclarer une quantité et un prix (sans décimales pour débuter).
  • Saisir deux valeurs avec ACCEPT.
  • Calculer un total avec MULTIPLY ... BY ... GIVING ....

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 code est en <pre> pour conserver un affichage réaliste.

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

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-PRIX              PIC 999 VALUE 000.
       01  WS-QTE               PIC 99  VALUE 00.
       01  WS-TOTAL             PIC 9(6) VALUE 000000.

       PROCEDURE DIVISION.
           DISPLAY "Entrez un prix unitaire (000 a 999) : "
           ACCEPT WS-PRIX
           DISPLAY "Entrez une quantite (00 a 99) : "
           ACCEPT WS-QTE

           MULTIPLY WS-PRIX BY WS-QTE GIVING WS-TOTAL

           DISPLAY "Total : " WS-TOTAL
           STOP RUN.

Lecture simple

MULTIPLY WS-PRIX BY WS-QTE GIVING WS-TOTAL signifie : “multiplier le prix par la quantité et mettre le résultat dans WS-TOTAL”. Le mot GIVING sert à indiquer clairement où va le résultat.

À retenir : choisissez un champ total assez grand. Ici, 999 × 99 = 98901, donc PIC 9(6) est confortable (jusqu’à 999999).

Votre micro-exercice

Faites ces 3 modifications :

  1. Ajoutez une variable WS-REMARQUE (texte) et affichez une phrase après le total (ex : “Calcul termine.”).
  2. Ajoutez un test : si la quantité vaut 00, afficher “Quantite invalide” au lieu de calculer.
  3. Affichez aussi le détail : “Prix : X / Qte : Y” avant le total.

Erreur fréquente à éviter

Mettre un total trop petit. Si vous déclarez un total en PIC 999, il ne peut pas dépasser 999. Or un produit peut vite dépasser cette limite. Résultat : dépassement, troncature ou valeur incohérente.

Autre piège : inverser les variables et croire que cela change le résultat. Mathématiquement, prix × quantité = quantité × prix, mais en COBOL le point important est surtout le format des champs et la taille du résultat.

Conseil : testez avec de petites valeurs (10 × 2) puis des valeurs fortes (999 × 99) pour vérifier que votre total est bien dimensionné.