Bienvenue dans la formation COBOL

Apprenez les bases du COBOL et développez vos compétences en programmation legacy avec une approche moderne.

Info : Ce module vous permet d’accéder rapidement aux contenus essentiels de la formation COBOL.
Retour au plan général
Index du tour guidé
Navigation rapide
Utilisez ces boutons si vous voulez accéder directement à une page, sans parcourir les cartes.
1 2 3 4 5 6 7 8 9 10

Leçon 3 : entrées et sorties simples

Objectif : apprendre à dialoguer avec l’utilisateur en console grâce à  DISPLAY  et  ACCEPT , et construire un “prompt” propre avec  WITH  NO  ADVANCING .

Débutant I/O console Pratique
🗣️
Idée clé
En Cobol, l’entrée/sortie console est volontairement simple : vous affichez avec  DISPLAY , vous lisez avec  ACCEPT . Le détail important est que vos champs texte sont souvent à longueur fixe, donc les espaces comptent.
🧠

Conceptualiser

Console

Trois instructions suffisent pour démarrer un dialogue en console :

📣
 DISPLAY 
Affiche du texte et des valeurs (sortie).
⌨️
 ACCEPT 
Lit une entrée utilisateur (souvent au clavier).
🧷
 WITH  NO  ADVANCING 
Affiche sans retour à la ligne pour construire un prompt propre (l’utilisateur saisit sur la même ligne).
⚠️
Détail qui surprend au début
Les champs texte sont souvent remplis d’espaces en fin de zone. Sans marqueurs, un champ peut sembler “vide” alors qu’il contient des blancs.
🧪

Opérer

Saisie utilisateur

Programme minimal : il affiche une question, lit une réponse, puis réaffiche la valeur entre crochets pour rendre visibles les espaces.

🧾Fichier : demo-io.cbl
Cobol (format libre)

 >>SOURCE FORMAT FREE
 IDENTIFICATION DIVISION.
 PROGRAM-ID. DEMO-IO.

 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 WS-SAISIE PIC X(30) VALUE SPACES.

 PROCEDURE DIVISION.
    DISPLAY "Entrez votre ville : " WITH NO ADVANCING
    ACCEPT WS-SAISIE

    DISPLAY "Vous avez saisi : [" WS-SAISIE "]"
    STOP RUN.
▶️ Compilation (exemple)
cobc -x -free demo-io.cbl
Exécutez ensuite le programme via votre environnement (souvent ./demo-io).
✅ Ce que vous validez
  • Prompt sans retour ligne
  • Lecture clavier
  • Affichage avec marqueurs
🧯

Déboguer

Problèmes fréquents

Les entrées/sorties console semblent simples, mais deux détails reviennent souvent.

  • Champ trop court : si l’utilisateur saisit plus long que  PIC  X(30) , la fin est perdue (ou tronquée).
  • Affichage “vide” : un champ rempli d’espaces paraît vide, d’où l’intérêt des crochets [...] ou des guillemets '...'.
🔎 Astuce rapide

Pour vérifier une saisie, affichez toujours avec un marqueur : [valeur]. Cela rend visibles les espaces restants.

🧭

Expliquer et explorer

Exercices

Les champs texte étant souvent à longueur fixe, une partie du champ reste composée d’espaces. Encadrer l’affichage avec [...] ou '...' évite les confusions et améliore l’apprentissage.

📌 Bonne habitude
Pour un prompt lisible :  DISPLAY  avec  WITH  NO  ADVANCING , puis  ACCEPT  sur la ligne suivante.

🧩 Exercices (à faire tout de suite)

  1. Demandez un prénom, puis affichez une phrase de bienvenue.
  2. Ajoutez deux saisies (prénom + ville) et affichez une phrase complète.

 >>SOURCE FORMAT FREE
 IDENTIFICATION DIVISION.
 PROGRAM-ID. EXO-HELLO.

 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 WS-PRENOM PIC X(20) VALUE SPACES.

 PROCEDURE DIVISION.
    DISPLAY "Entrez votre prenom : " WITH NO ADVANCING
    ACCEPT WS-PRENOM

    DISPLAY "Bienvenue [" WS-PRENOM "]"
    STOP RUN.

 >>SOURCE FORMAT FREE
 IDENTIFICATION DIVISION.
 PROGRAM-ID. EXO-PRENOM-VILLE.

 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 WS-PRENOM PIC X(20) VALUE SPACES.
 01 WS-VILLE  PIC X(20) VALUE SPACES.

 PROCEDURE DIVISION.
    DISPLAY "Prenom : " WITH NO ADVANCING
    ACCEPT WS-PRENOM

    DISPLAY "Ville  : " WITH NO ADVANCING
    ACCEPT WS-VILLE

    DISPLAY "[" WS-PRENOM "] habite a [" WS-VILLE "]"
    STOP RUN.
💡 Encadrer avec des crochets rend visibles les espaces de fin de champ, ce qui évite les surprises.

↑ Haut