Historique : avant 1960
Versions :
COBOL
ANS 74 ("American National Standard")
COBOL
ANS 85
divisions
sections
paragraphes
Rq : toujours un point à la fin
IDENTIFICATION DIVISION.
PROGRAM-ID. Nom.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*>associations
descr-ficphysique
DATA DIVISION.
FILE SECTION.
*>déclarations de descr
*>définition de structures
d'un descr
WORKING-STORAGE
SECTION.
*>déclarations de var
PROCEDURE DIVISION.
*> traitements
STOP RUN.
nom-§.
*> description §
END-PERFORM.
END PROGRAM Nom.
col
7 : * : commentaires
col.
8 ® 72 : prog. en lui-même
*(col. 7) commentaire ® fin ligne
*> commentaires ® colonne 72
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE CONTROL.
SELECT NomDescr ASSIGN TO "NomFicPhysique" ORGANIZATION TypeOrganisation.
Type d'organisation
▪ SEQUENTIAL
▪ LINE SEQUENTIAL : 1 enreg = 1 ligne
DATA DIVISION.
FILE-SECTION.
FD NomDescr.
01 NomStructDescr.
02 NomChamp1 type.
02 NomChamp2 type.
Rq : on peut omettre le nom d'un champ
Les structures servent à découper les enregistrements
dans un descr
FD NomDescr.
01 TypreEnreg
02 NomChamp1 type.
03 …
01 AutreTypeEnreg
…
Ex : FD descr-de-phrases.
01 phrase PIC X(20).
02 mot PIC X(5).
…
PROCEDURE DIVISION.
NomParagraphe.
Instruction1
Instruction2
…
STOP RUN.
END PROGRAM NomProgramme.
Attn : en COBOL, toujours un point sauf pour les
instructions
Déclarer une variable
DATA DIVISION.
WORKING-STORAGE SECTION.
77
NomVar PIC format
[VALUE valInit].
77
NomVar PIC
format COMP [VALUE valInit].
77
NomVar COMP-1 [VALUE valInit].
77
NomVar COMP-2
[VALUE valInit].
77 PIC 9 VALUE val_à_faux.
88
nom_booléen VALUE val_à_vrai.
Rq : le booléen est initialisé à FAUX
|
alphanumérique |
X |
1 octet |
|
XXX |
3 octets |
|
|
X(nb) |
nb octets |
|
|
alphabétique |
A |
1 octet |
|
A(nbCar) |
nbCar octets |
Types codés = type défini par une combinaison de caractères
|
alphanumérique |
B |
blanc |
|
X |
|
|
|
/ |
'/' |
|
|
nombres |
9 |
1 chiffre |
|
99 |
2 chiffres |
|
|
9(nb) |
nb chiffres |
|
|
S |
signe algébrique |
|
|
V |
virgule |
|
|
|
Z |
1 chiffre qui ne sera pas
affiché si c'est 0 |
Ex :
▪ -12.23 est du type S99V99
▪ 15/oct/ 01 est du type XX/XXX/BXX
▪ S9(10)
Rq : en COBOL, il n'y a pas de car de fin de chaîne
('\0' en C++)
Rq : V et S ne sont pas compris dans la taille
d'un nombre
Rq : en COBOL, la fermeture du descr est implicite
Taille : chq caractère Û
1 octet sauf quand le codage est
binaire
NOT Û 'non' logique
AND Û 'et' logique
OR Û
'ou' logique
Instructions
DISPLAY
"texte_à_afficher" var [NO
ADVANCING]
DISPLAY var (colonneDéb : nbColonnes)
DISPLAY structure (colonneDéb : nbColonnes)
EXHIBIT NAMED var
Attn : contrôler les bornes pour l'affichage d'une colonne
à une autre
NO ADVANCING empêche le passsage à la ligne suivante
EXHIBIT NAMED var Û DISPLAY "var
= " var
Saisir (clavier)
ACCEPT
var
ACCEPT nom-structure *> déconseillé
Attn : la saisie d'une structure n'est pas champ par
champ, elle n'est pas formatée Þ risques
OPEN mode nom-descr
|
lecture |
INPUT
|
|
écriture |
OUTPUT |
|
ajout en fin de fichier |
EXTEND |
|
lecture/écriture |
I-O |
CLOSE nom-descr
READ nom-descr INTO var
[AT
END Instructions_si_on_atteint_la_fin]
END-READ
Þ lit toute la structure
de niveau 01
WRITE
structure [FROM
var]
END-WRITE