« COBOL/Variables » : différence entre les versions

Contenu supprimé Contenu ajouté
Modif. navigateur chapitre - catégorisation
Guillpetiot (discussion | contributions)
mAucun résumé des modifications
Ligne 39 :
Il existe un raccourci d'écriture pour nous simplifier la vie : mettre le nombre d'occurrences d'un caractère entre parenthèses plutôt que de toutes les écrire. Par exemple, XXXX peut se réécrire X(4), c'est valable pour tous les types de caractères. Voici un exemple pour illustrer tout ça :
 
<source lang="cobol">
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. ex-variables.
000003
000004 DATA DIVISION.
000005 WORKING-STORAGE SECTION.
000006 77 note PIC ZZ.ZZ.
000007000006 77 prenomnote PIC A(20)ZZ.ZZ.
000006000007 77 note prenom PIC ZZ.ZZA(20).
000008
000009 PROCEDURE DIVISION.
000010 main.
000011 STOP RUN.
000012 END PROGRAM ex-variables.</source>
 
==Initialisation de variables==
Ligne 56 ⟶ 57 :
Lorsque vous définissez vos variables, vous pouvez leur donner une valeur, cette valeur doit être compatible avec leur image. C'est à ça que sert la clause VALUE. En voici quelques exemples :
 
<source lang="cobol">
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. ex-variables.
000003
000004 DATA DIVISION.
000005 WORKING-STORAGE SECTION.
000006 77 annee PIC 9(4) VALUE 2008.
000007000006 77 vide annee PIC A9(204) VALUE ""2008.
000008000007 77 prenomvide PIC A(20) VALUE "Aristote".
000006000008 77 annee prenom PIC 9A(420) VALUE 2008"Aristote".
000009
000010 PROCEDURE DIVISION.
000011 main.
000012 STOP RUN.
000013 END PROGRAM ex-variables.</source>
 
Après ces définitions, annee contient 2008, vide contient une chaîne vide de 20 caractères et prenom contient la chaîne "Aristote" suivie de 12 espaces. Vous pouvez afficher ces variables à l'aide de l'instruction DISPLAY vue précédemment.
Ligne 83 ⟶ 85 :
On peut les utiliser comme suit :
 
<source lang="cobol">
77 annee PIC 9(4) VALUE ZERO.
77 vide annee PIC A9(204) VALUE SPACESZERO.
77 anneevide PIC 9A(420) VALUE ZEROSPACES.</source>
 
Ainsi annee est initialisée à 0000 et vide contient une série d'espaces. Ces constantes figuratives peuvent également être affichées à l'écran via l'instruction DISPLAY.
Ligne 102 ⟶ 105 :
L'instruction ACCEPT permet de stocker dans une variable ce qui provient de l'entrée standard, dans notre cas le clavier. Nous pouvons expliciter cette source en ajoutant la clause FROM suivie de l'identifiant console. Voici donc le synopsis de cette instruction :
 
<source lang="cobol">ACCEPT variable [FROM console].</source>
 
La variable réceptrice doit être déclarée et avoir une image compatible avec la donnée entrée.
Ligne 110 ⟶ 113 :
Les variables complexes sont des variables qui peuvent avoir plusieurs niveaux de subdivisions. Le niveau d'une variable complexe est 01, le niveau de chaque subdivision doit être supérieur à celui de sa souche (de 01 a 49). Ce type de structure permet de hiérarchiser les données. Voici un exemple de variable complexe :
 
<source lang="cobol">01 personne.
02 nom PIC X(20) VALUE "DUPONT".
02 prenom PIC X(20) VALUE "Martin".
Ligne 116 ⟶ 119 :
03 annee PIC 9999 VALUE 1954.
03 mois PIC 99 VALUE 02.
03 jour PIC 99 VALUE 07.</source>
 
Une image ne peut être définie que pour le dernier niveau des variables, c'est pourquoi nous n'en définissons pas pour naissance et personne.
Ligne 124 ⟶ 127 :
Voici un programme récapitulatif qui stocke dans une structure complexe une date de naissance composée de l'année, du mois et du jour. On demande tout d'abord à l'utilisateur de rentrer ces données au clavier avant de les afficher.
 
<source lang="cobol">
000001 IDENTIFICATION DIVISION.
000002 PROGRAM-ID. saisie-naissance.
000003
000004 DATA DIVISION.
000005 WORKING-STORAGE SECTION.
000006 01 date-naissance.
000007000006 01 02 annee PIC 9999date-naissance.
000008000007 02 mois annee PIC 999999.
000009000008 02 jourmois PIC 99.
000009 02 jour PIC 99.
000010
000011 PROCEDURE DIVISION.
000012 saisie.
000013 DISPLAY "Année : " NO ADVANCING.
000014 ACCEPT annee.
000014 ACCEPT annee.
000015 DISPLAY "Mois : " NO ADVANCING.
000016 ACCEPT mois.
000017 DISPLAY "Jour : " NO ADVANCING.
000018 ACCEPT jour.
000019 affichage.
000020 DISPLAY annee "/" mois "/" jour.
000021 STOP RUN.
000022 END PROGRAM saisie-naissance.</source>
 
[[Catégorie:COBOL]]