Cobol ANS 74/Structure générale
Format.
Le code source en COBOL peut utiliser un format fixe (hérité des cartes perforées) ou un format libre depuis COBOL 2002.
Les perforations des cartes perforées ne permettait que l'encodage des lettres en capitales ; cela explique que les mots-clés et les noms en COBOL n'utilisent pas de lettres en minuscules.
Format fixe.
Le format fixe est hérité des cartes perforées utilisées pour écrire les premiers programmes en COBOL.
Les lignes sont limitées à 80 caractères (80 colonnes) qui sont divisées comme suit :
 *A B
 IDENTIFICATION DIVISION.
 PROGRAM-ID. HELLO.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 ***** Variables
 77 NOM PIC X(20).
 77 COMPTEUR PIC 9(3).
 PROCEDURE DIVISION.
 ***** Initialisation
 MOVE "monde" TO NOM.
 MOVE 99 TO COMPTEUR.
 ***** Affichage
 DISPLAY 'Bonjour ' NOM ' !'.
 DISPLAY 'Vous avez ' COMPTEUR ' messages.'.
 STOP RUN.
Format libre.
Le format libre est possible en COBOL à partir de la version 2002 :
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NOM PIC X(20).
77 COMPTEUR PIC 9(3).
PROCEDURE DIVISION.
MOVE "monde" TO NOM.
MOVE 99 TO COMPTEUR.
DISPLAY 'Bonjour ' NOM ' !'.
DISPLAY 'Vous avez ' COMPTEUR ' messages.'.
STOP RUN.
Affichage.
Les deux exemples précédents sont équivalents et affichent :
Cet affichage montre que les variables sont affichées pleinement, sans suppression des espaces finaux ou des zéros initiaux :
4 Divisions par Programme.
Un programme est divisé en quatre divisions :
 PROGRAM-ID. EXEMPLE.
 AUTHOR. FR-WIKIBOOKS-ORG.
 SOURCE-COMPUTER. CPU1.
 OBJECT-COMPUTER. CPU1.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
 SELECT ...
IDENTIFICATION DIVISION.
 PROGRAM-ID. EXEMPLE.
 AUTHOR. FR-WIKIBOOKS-ORG.
ENVIRONMENT DIVISION.
 SOURCE-COMPUTER. CPU1.
 OBJECT-COMPUTER. CPU1.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
 SELECT ...
DATA DIVISION.
 FILE SECTION.
 FD FNOM LABEL RECORD STANDARD/OMITTED
 01 FENR.
 02 NOM1 PIC X(10).
 WORKING-STORAGE SECTION.
 66 NOM RENAMES NOMA THRU NOMB.
 77 INDEP PIC X(10)
 88 IND-OK VALUES 1 THRU 10.
 88 IND-KO VALUES 11 THRU 20.
PROCEDURE DIVISION. 
Éléments du Cobol.
 ex.: .0 13.34.56 -.45 .+65 -12.
ex: ZERO(alphanum) // "ZERO"(alpha) // 0(num) // 0.0(num) // ALL ZERO(alpha) // ALL "ZERO"(alpha) // ALL (0(doit être non num))
Clauses.
PICTURE [V 9 X A]
EDITION [. , / B 0] // [+ - $ CR DB] // [Z *] // [+ - $]
SIGN // {LEADING/TRAILING} SEPARATE
VALUE 
REDEFINE
RENAMES
FILLER // Var
BLANK WHEN ZERO
Nombre niveau.
 01 ARTICLE.
 02 DESCRIPTION PIC X(10).
 03 CODE-MAGASIN PIC XXX.
 03 NUMERO-COULEUR PIC 99.
EXPR ARITHMETIQUE.
[+ - * / **(exp)]
 COMPUTE A, C = A*(B**-3). // A=A*(B**-3), C=A*(B**-3) //
INSTRUCTIONS.
de contrôle.
IF [c1] [ins]
 ELSE IF [c2] [ins]
 ELSE [ins]
 ... [NOT]= ...
 ... [NOT]> ...
 ... [NOT]< ...
 ... [NOT] {POSITIVE/NEGATIVE/ZERO} 
 77 ETAT-CIVIL PIC 9.
 88 CELIBATAIRE VALUE 1.
 88 MARIE VALUE 2.
 88 DIVORCE VALUE 3.
 88 VEUF VALUE 4.
 88 ETAT-CIVIL-FAUTIF VALUES ARE 0, 5 THRU 9.
 88 SANS-CONJOINT VALUES ARE 1, 3, 4.
ETAT-CIVIL-FAUTIF si 0,5,6,7,8,9 (vrai) sinon (faux)
[( ) NOT AND OR]
 IF MARIE AND FEMME OR (AGE > 30).
 IF A=B OR A=C OR A>D
 IF A=B OR =C OR >D
 IF A=B OR C OR >D
Feuille de programme.
Feuille à 80 colonnes issue du modèle des cartes perforées.
Structure :
Symboles.
. Le point ferme l'instruction en Cobol et il est suivi d'un espace.
 IF A = B MOVE 1 TO C
 ELSE MOVE 3 TO C
 MOVE 1 To B D.
,; (facultatif) séparateur pour clarifier la notation
 ELSE MOVE 3 TO C;
 MOVE 1 TO B, D.

Cobol ANS 74/Bases du Cobol
Cobol ANS 74/Divisions, sections, paragraphes

IDENTIFICATION DIVISION.
Identification du programme, n'est formé que de paragraphes.
 78 | 
 IDENTIFICATION DIVISION
 PROGRAM-ID. EXEMPLE.
 AUTHOR. NOM.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION. (obligatoire)
[INPUT-OUTPUT SECTION] (facultatif)
 78 | 
 ENVIRONMENT DIVISION
 CONFIGURATION SECTION.
 OBJECT-COMPUTER. MINTA.
 SOURCE-COMPUTER. MINTA.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
 SELECT (F1) ASSIGN TO DISK;
 FILE STATUS IS FS.
 SELECT (F2) ASSIGN TO PRINTER.
DATA DIVISION.
WORKING STORAGE SECTION..
 78 |
 DATA DIVISION
 WORKING STORAGE SECTION.
Les champs.
Reçoit les vars
 nombre_niveau {nom } [clause] ...
? Soit le champ article divisé en description et code article qui est divisé en code magasin et numéro couleur.
 78 |
 DATA DIVISION
 WORKING STORAGE SECTION.
 01 ARTICLE.
 02 DESCRIPTION PIC X(10).
 02 CODE-ARTICLE. 
 03 CODE-MAGASIN PIC ---.
 03 NUMERO-COULEUR PIC 99.
 77 CPT PIC 99.
Les champs élémentaires reçoivent PIC :
PROCEDURE DIVISION.
 78 |
 PROCEDURE DIVISION
 PROG.
 ADD...
 MOVE...

Cobol ANS 74/Fichiers
Fichier séquentiel.
ENVIRONMENT DIVISION.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
 SELECT FNOM ASSIGN TO (DISK/PRINTER);
 ORGANIZATION IS SEQUENTIAL;
 ACCESS MODE RANDOM;
 FILE STATUS IS FS.
 01 ENREG.
 02 NM1 PIC X(15).
 02 FILLER PIX X(5); VALUE SPACE.
 02 NM2 PIX X(20). 
 DATA DIVISION.
 FILE SECTION.
 FD FNOM LABEL RECORD STANDARD;
 VALUE OF FILE-ID IS "FNOM.DAT".
? FACTURE DE GAZ - créer un fichier de consommation de GAZ avec le nom en X(16), adresse X(40), ville X(15) et consommation 9(4)V99. > CRÉER ce fichier en le remplissant et s'il existe déjà, on demande si on veut le détruire (o/n). > FAIRE menu (1. Sortie écran / 2. Rechercher par nom / 3. Ajouter des personnes au fichier / 4. Modifier - smenu (1. nom / 2. adresse / 3. ville / 4. consommation / 0. fin) / 5. Sortie imprimante / 0. fin) 
? Rajouter une option d'impression de liste de consommation par client avec numéro en bas de page 
fichier indexe.
exercices.
 Soit le fichier suivant // (CP-ClePrimaire) est NUM-PROD et (CleAlternative) est DES-PROD
 *8 | | | | | | | | | | | | | | | |
 ENVIRONMENT DIVISION
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
 SELECT FPROD ASIGN TO DISK;
 ORGANIZATION INDEXED;
 ACCESS MODE ...
 RECORD KEY IS NUM-PROD;
 ALTERNATE RECORD DES-PROD DUPLICATES;
 FILE STATUS IS STAT-PROD.
 DATA DIVISION.
 FILE SECTION.
 FD FPROD LABEL RECORD STANDARD;
 VALUE OF FILE-ID IS "FPROD.DAT".
 01 ENR-PROD.
 02 NUM-PROD.
 03 FAM-PROD PIC XX.
 03 FILLER PIC X(4).
 02 NOM-PROD.
 03 DES-PROD PIC X(5).
 03 FILLER PIC X(10).
 02 INFO PIC XX.
 WORKING-STORAGE SECTION.
 77 STAT-PROD PIC XX.
? 1/ Faire programme pour CREER, REMPLIR, AFFICHER, MODIFIER, EFFACER dans ce fichier

Cobol ANS 74/Tables
Acces par Indice, Index, Search
Cobol ANS 74/Liens
Droit commercial/La délimitation du domaine d’application du droit commercial