1. INTRODUCTION
2. IDENTIFICATION DIVISION
3. ENVIRONMENT DIVISION
4. DATA DIVISION
4.1 FILE SECTION
4.2 WORKING-STORAGE SECTION
4.3 Les TYPES DE DONNEES
4.4 PICTURES D’ÉDITION
4.5 SYMBOLES FLOTTANTS
4.6 LES STRUCTURES
4.7 LES TABLES
4.8 INDEXATION
5. LES NIVEAUX SPECIAUX
Le niveau 77
Le niveau 88
6. REDEFINES
7. SCREEN SECTION
8. La PROCEDURE DIVISION
8.1 LA GESTION DES FICHIERS – Les Entrées-Sorties
OUVERTURE DES FICHIERS OPEN
FERMETURE DES FICHIERS CLOSE
LECTURE DE FICHIERS SEQUENTIELS READ
ECRITURE DE FICHIERS SEQUENTIELS WRITE
FICHIER IMPRIMANTE WRITE
STATUS KEY
L’INSTRUCTION ACCEPT
L’INSTRUCTION DISPLAY
8.2 LES INSTRUCTIONS ARITHMETIQUES
L’ADDITION ADD
LA SOUSTRACTION SUBTRACT
LA MULTIPLICATION MULTIPLY
LA DIVISION DIVIDE
L’INSTRUCTION COMPUTE
8.3 LES MOUVEMENTS DE DONNEES MOVE
8.4 L’INSTRUCTION INITIALIZE
8.5 L’INSTRUCTION INSPECT
8.6 L’INSTRUCTION STRING
8.7 L’INSTRUCTION UNSTRING
8.9 LES INSTRUCTIONS CONTIONNELLES EVALUATE
9. LES BRANCHEMENTS GO TO DEPENDING
10. L’INSTRUCTION PERFORM
11. L’INSTRUCTION EXIT
12. L’INSTRUCTION STOP
13. L’INSTRUCTION SET
14. L’INSTRUCTION SEARCH
15. LES SOUS-PROGRAMMES EXTERNES
16. LE TRI – SORT
17. LES FICHIERS INDEXE-SEQUENTIEL
INTRODUCTION
COBOL, ‘Common Business Oriented Language‘ est un langage orienté vers les affaires. Ce langage a été mis au point en 1959 à la demande du gouvernement américain dans le but d’harmoniser les systèmes des différentes administrations. Ce langage est encore fort répandu car à peu près 70% des applications commerciales sont écrites en COBOL. Cette grande utilisation peut être expliquée par la grande portabilité de ce langage et ses différentes remises à niveau. Des différences existent entre chaque compilateur COBOL. Nous verrons principalement le compilateur Cobol IBM-AS400 et celui de Microsoft.
1. Principes de base
Un programme Cobol s’écrit sur une ligne de 80 colonnes.
Les colonnes 1 à 6 représentent la numérotation des lignes et des pages.
La colonne 7 est utilisée pour indiquer une ligne de continuation (code -) ou pour indiquer un commentaire (code *).
IDENTIFICATION DIVISION
Cette division sert à identifier le nom du programme et fournit des informations relatives au nom du programmeur, de la date d’écriture du programme et aux remarques éventuelles.
Forme Générale
A B
IDENTIFICATION DIVISION.
PROGRAM-ID. Program4. indique le nom du programme, cette clause est toujours présente car elle identifie le programme. Ce nom est limité à 8 caractères alphanumériques dont le premier doit être alphabétique.
ENVIRONMENT DIVISION
Cette division permet de définir le type d’ordinateur pour lequel est écrit le programme, ainsi que les périphériques nécessaires pour supporter les fichiers.
A B
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-AS400.
Ou IBM-PC.
OBJECT-COMPUTER. IBM-AS400.
Ou IBM-PC.
SPECIAL-NAMES. Liste des noms symboliques spéciaux.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
Options
I-O-CONTROL.
Options
Les Special-names
CURRENCY-SIGN IS caractère par défaut le $ mais un autre caractère peut être utilisé DECIMAL-POINT IS COMMA la Virgule indique la séparation des unités et des décimales. Nom-réservé IS nom-mnémonique cette clause s’adresse aux instructions d’entrée-sortie DISPLAY et ACCEPT.
DATA DIVISION
La DATA DIVISION est organisée en 4 sections.
La FILE SECTION qui définit les fichiers en regroupant les instructions de gestion des entrées sorties et les descriptions des zones de mémoire où sont transmis les enregistrements des fichiers.
La WORKING-STORAGE SECTION où sera décrit chaque variable de travail.
La LINKAGE SECTION qui permet de déclarer les zones de mémoire utilisées par plusieurs programmes.
La SCREEN SECTION pour la gestion du GUI
FILE SECTION
La FILE SECTION contient une description de fichier ainsi qu’une ou plusieurs descriptions d’enregistrement pour chaque fichier utilisé par le programme.
DECLARATION DU FICHIER
FD file-name BLOCK CONTAINS XXX RECORDS (N° de records à écrire au même temps)
RECORD CONTAINS NNN CHARACTERS (calcul automatique)
(N° d’octets total du record)
LABEL RECORD IS {STANDARD} (par défaut /// Ne faut pas les préciser)
{OMITTED }
VALUE OF { FILE-ID } IS id-name
DATA { RECORD IS } {record-name} …
{ RECORDS ARE }
….