Exercice 18 : accept

Micro-exercice

Objectif : utiliser ACCEPT pour récupérer une saisie utilisateur. C’est la porte d’entrée de beaucoup de programmes : on demande une information, on la stocke dans une variable, puis on la traite (affichage, tests, calculs).

Ce que vous pratiquez

  • Afficher une question claire avec DISPLAY.
  • Lire une réponse avec ACCEPT.
  • Vérifier la réponse avec un test simple.

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 garder un alignement “vrai COBOL”.

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

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-REPONSE           PIC X VALUE SPACE.

       PROCEDURE DIVISION.
           DISPLAY "Voulez-vous continuer ? (O/N) : "
           ACCEPT WS-REPONSE

           IF WS-REPONSE = "O"
               DISPLAY "Vous avez repondu O : on continue."
           ELSE
               DISPLAY "Vous avez repondu autre chose : on s'arrete."
           END-IF

           STOP RUN.

Lecture simple

ACCEPT WS-REPONSE lit ce que l’utilisateur tape et le met dans la variable. Ici, on attend un seul caractère : PIC X. Ensuite, on compare ce caractère à “O”.

À retenir : ACCEPT récupère une saisie. Pour un bon résultat, le champ doit être correctement dimensionné (ici 1 caractère).

Votre micro-exercice

Faites ces 3 modifications :

  1. Acceptez aussi “o” (minuscule) en ajoutant un deuxième test, ou en normalisant la saisie.
  2. Si la réponse est “N”, affichez “Arret demande”.
  3. Si la réponse n’est ni O ni N, affichez “Reponse invalide”.

Erreur fréquente à éviter

Choisir un champ trop court ou trop long. Si vous mettez PIC X(20) pour une réponse O/N, vous stockez des espaces inutiles, et vous compliquez parfois les comparaisons.

Autre piège : oublier d’afficher une question avant ACCEPT. Le programme “attend”, mais l’utilisateur ne sait pas quoi saisir.

Conseil : pour les exercices, posez toujours une question courte et très explicite avant un ACCEPT.