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.
Votre micro-exercice
Faites ces 3 modifications :
- Ajoutez une variable WS-REMARQUE (texte) et affichez une phrase après le total (ex : “Calcul termine.”).
- Ajoutez un test : si la quantité vaut 00, afficher “Quantite invalide” au lieu de calculer.
- 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.