IDENTIFICATION DIVISION.
PROGRAM-ID. EXO-DIVIDE-13.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NOMBRE PIC 9999 VALUE 0000.
01 WS-DIVISEUR PIC 99 VALUE 00.
01 WS-QUOTIENT PIC 9999 VALUE 0000.
01 WS-RESTE PIC 99 VALUE 00.
PROCEDURE DIVISION.
DISPLAY "Entrez un nombre (0000 a 9999) : "
ACCEPT WS-NOMBRE
DISPLAY "Entrez un diviseur (01 a 99) : "
ACCEPT WS-DIVISEUR
DIVIDE WS-NOMBRE BY WS-DIVISEUR
GIVING WS-QUOTIENT
REMAINDER WS-RESTE
DISPLAY "Quotient : " WS-QUOTIENT
DISPLAY "Reste : " WS-RESTE
STOP RUN.
Lecture simple
DIVIDE A BY B GIVING Q REMAINDER R signifie : on divise A par B, on met le quotient dans Q, et le reste dans R. C’est très pratique pour les divisions qui ne tombent pas juste.
Votre micro-exercice
Faites ces 3 modifications :
- Ajoutez un test : si le diviseur vaut 00, afficher “Division impossible” et ne pas calculer.
- Ajoutez un test : si le reste vaut 00, afficher “Division exacte”.
- Testez avec 100 / 10 (reste 0) puis 100 / 6 (reste 4) pour vérifier.
Erreur fréquente à éviter
Diviser par zéro. Si l’utilisateur saisit 00, la division n’a pas de sens et peut provoquer une erreur. Le bon réflexe : tester avant la commande DIVIDE.
Autre piège : déclarer un champ “reste” trop grand ou incohérent. Ici, le reste est forcément inférieur au diviseur, donc un PIC 99 suffit si le diviseur est sur 2 chiffres.