1) Déclaration
de variables
2)
Déclaration de structures
3)
Déclaration de fichiers
4)
Déclaration de grilles d'écran
5)
Déclaration d'impression
6)
Déclaration des touches de fonctions
7)
Déclaration des pictures d'éditions
Pour déclarer tout type de donnée, on doit d'abord préciser
le niveau auquel elle se situe.Le numéro 77 sert donc à
déclarer une variable. Ce chiffre est suivi du nom de la
variable puis du mot PICTURE (ou PIC). Ensuite on précise le
type de variable:
exemples:
* 77 var PIC X.
Déclaration d'une donnée appelée "var" de type
alphanumérique et de taille 1.
* 77 var PIC XXXXX. ou 77 var PIC X(5).
Cette déclaration est la même que ci-dessus avec une
donnée de taille 5.
* 77 var PIC X(5) VALUE "Nom: ".
Déclaration d'une donnée appelée "var" de type
alphanumérique et de taille 5.
On a initialisé cette donnée à "Nom: ".
* 77 var PIC X(2) VALUE SPACES.
Déclaration d'une donnée appelée "var" de type
alphanumérique et de taille 2.
On a initialisé cette donnée avec des espaces.
Le mot SPACES est prédéfini en Cobol.
* 77 entier PIC 9.
Déclaration d'une donnée appelée "entier" de
type numérique et de taille 1.
* 77 entier PIC 99999. ou 77 entier PIC 9(5).
Cette déclaration est la même que ci-dessus avec une
donnée de taille 5.
* 77 decimal PIC 9999V99. ou 77 decimal PIC 9(4)V9(2).
Ceci permet de déclarer un nombre à virgule. On aura donc 4
chiffres avant la virgule et 2 après.
* 77 signé PIC S99 VALUE 5.
Déclaration d'une donnée appelée "signé" de
type numérique. Le "S" permet d'affecter un signe
(positif ou négatif). La taille de cette donnée est de 2 et sa
valeur est 5.On peut aussi l'initialiser à zero en écrivant:
![]()
Le nom "ZERO" peut être
utilisé car il est prédéfini en Cobol.
Il est impossible de faire une affectation du genre: VALUE ONE.
Ce type de déclarations permet notamment de faires des
vecteurs à une ou plusieurs dimensions.
Vecteur à une dimension
01 vecteur.
02 vecteur2
occurs 10 pic 99.
Ceci est une structure s'appelant vecteur et contenant un tableau
à une dimension s'appellant vecteur2 et composé de dix
éléments.
Pour affecter des valeurs dans ce tableau on précise l'endroit
dans le vecteur:
Vecteur à plusieurs dimensions
01 vect.
02 vect2 occurs
10.
03
vect3 occurs 20 pic 999.
Ceci est une structure s'appelant vect composé d'un vecteur à
deux dimensions.
On a donc placé la valeur 249 à la ligne 1 et à la colonne
5.
Autre type de structure
01 cart-id.
02 num-insee pic
9(13).
02 nom pic x(32).
02 adresse.
03
cp pic x(5).
03
rue pic x(64).
03
ville pic x(32).
Ceci est une structure permettant de donner l'identité d'une
personne avec pour la carte d'identité un numéro INSEE, un nom
et une adresse elle-même composé d'un code postal, d'une ville
et d'une rue.
Pour déclarer un fichier il y a plusieurs étapes:
Exemple:
Supposons qu'une entreprise possède plusieurs employés
sauvegardé dans un fichier PERSONNEL. Dans le programme cobol la
fonction SELECT renomme le fichier PERSONNEL en FPERSONNE.
Celui-ci est organisé séquentiellement. Le nom PERSONNEL est
donc le nom externe du fichier, tandis que FPERSONNE est le nom
interne au programme.
FILE-SECTION est une zone à l'intérieur de laquelle on définit
les fichiers. 01 EPERSONNE... correspond à la copie de tous les
formats se trouvant dans le fichier. Cette notation de FPERSONNE
et EPERSONNE sera développé dans le chapitre
V:Utilisation des fichiers séquentiels.
Cette déclaration s'effectue de la même manière que pour un
fichier. Il y a donc plusieurs étapes similaires.
Exemple:
Exemple:
Un fichier d'impression est forcément organisé en
séquentiel pour la simple et bonne raison qu'une
imprimante commence en haut de la feuille et fini en bas
(c'est logique).
EIMPR contient quand à lui le nombre maximum de
caractère se trouvant sur une ligne à imprimer.
Cf chapitre VII: D'autres programmes
séquentiels.
Cette déclaration ce fait dans la WORKING-STORAGE
SECTION. On donne d'abord la déclaration des touches de
fonctions, puis on les déclare comme pour des entiers
avec le préfixe 88 au lieu de 77.(Cf chapitre
IV:Utilisation des grilles d'écran.)
Exemple:
La chaîne de caractères d'une telle donée est limitée
à certaines combinaisons des 14 symboles suivants:
EXEMPLES:
Etant donné la picture de l'élément émetteur
et son contenu, et la picture de l'élément récepteur,
voici le contenu de l'élément récepteur après
affectation:
(b= 1 blanc ou 1 espace)
| Picture de la zone émettrice | Contenu de cette zone | Picture de la zone réceptrice | à l'impression |
| 99999 | 12345 | ZZZ99 | 12345 |
| 99999 | 00001 | ZZZ99 | bbb01 |
| 99999 | 00123 | $$999 | b$123 |
| 99999 | 00123 | $9999 | $0123 |
| S9999 | -0123 | -9999 | b-0123 |
| S9999 | +0012 | +9999 | b+0012 |
| S99999 | -00123 | ++++99 | bb-123 |
| S99999 | +00001 | +++999 | bb+001 |
| S99999 | +01234 | ---999 | bb1234 |
| 99999 | 00000 | ----- | bbbbb |
| 99999 | 12345 | **999 | 12345 |
| 99999 | 00001 | **999 | **001 |
| 999999 | 123456 | $ZZZ,ZZZ.99 | $123,456.00 |
| 9(4)V99 | 123456 | $ZZZ,ZZZ.99 | $bb1,234.56 |
| S9(6) | -000123 | -(6)9 | bb1bbb234 |
| 9(6) | 000012 | Z(6)00 | bbbb1200 |
| 9(4)V99 | 000123 | $$$$,$$$.99 | bbbb,b$1.23 |
| 9(6) | 123456 | 99B99B99 | 12b34b56 |
| 9(4)V99 | 00078 | $$,$$9.99 | bb,b$0.78 |
Dans un programme: