D�veloppement en COBOL - PowerPoint by HC120929015837

VIEWS: 12 PAGES: 92

									Méthodes de programmation
         ORD 17503
          Étape 3
          HISTORIQUE
     STRUCTURE DU LANGAGE
            PICTURE
         Historique du COBOL
   COmmon Business Oriented Language.

   Développé en 1959 à la demande du
    Gouvernement Américain.

   Norme ANS développée en 1968, puis
    révisée en 1974 et en 1985.
    Historique du COBOL (suite)
   Langage le plus utilisé
    – On estime qu’il existe 77,000,000,000 lignes de
      code.
    – 50% des programmes des 1000 plus grandes
      entreprises américaines sont écrits en COBOL.
      Structure d’un programme
   Un programme COBOL est composé de 4
    divisions
    – IDENTIFICATION DIVISION
      » Sert à l’identification du programme et à sa
        documentation
    – ENVIRONMENT DIVISION
      » Description des communications avec les fichiers
 Structure d’un programme
– DATA DIVISION
  » définit la structure des entrées et des sorties ainsi
    que les zones de travail
– PROCEDURE DIVISION
  » Décrit le traitement à effectuer (instructions)
          Programme COBOL
              Vocabulaire
   Chaque portion qui se termine par un point
    dans un programme COBOL est appelée
    INSCRIPTION (ENTRY)
            Programme COBOL
             Vocabulaire (suite)
   Une inscription peut être :
    –   un en-tête de division
    –   un en-tête de section
    –   un nom de paragraphe
    –   un énoncé
    –   une description de donnée
    –   un commentaire
     Programme COBOL
      Vocabulaire (suite)
EXEMPLE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE CONTROL.
    SELECT FE-CLIENT
    ASSIGN TO “C:\CLIENT.DAT”
    ACCESS MODE IS SEQUENTIAL.
     Programme COBOL
      Vocabulaire (suite)
Dans la PROCEDURE DIVISION, un
PARAGRAPHE est composé de plusieurs
PHRASES. Chaque PHRASE est formée d’un
ou plusieurs ÉNONCÉS.


Un ÉNONCÉ est formé de plusieurs MOTS.
Le premier MOT doit être un VERBE.
        Programme COBOL
         Vocabulaire (suite)
Certains ÉNONCÉS ont des ClAUSES
optionnelles.
Ex.            MOTS




READ FE-CLIENT AT END MOVE “O” TO WS-FIN.

      VERBES              CLAUSE
     Organisation des données
       Formation des noms
 En COBOL, chaque fichier, enregistrement
  et item porte un nom (data name).
 Le nom est attribué par le programmeur et
  doit se conformer aux règles suivantes:
     Organisation des données
    Formation des noms (suite)
–   1 à 30 caractères
–   lettres, chiffres et -
–   pas de - au début ou à la fin
–   aucun espace inclus
–   premier caractère alphabétique
–   ne peut être identique à un mot réservé
         Organisation des données
        Formation des noms (suite)
   Noms valides
    –   SALAIRE
    –   FE-CLIENT
    –   NOM-DU-FOURNISSEUR
    –   MONTANT-2
       Organisation des données
      Formation des noms (suite)
   Noms invalides
    – NOM-DE-L’EMPLOYE
    – DATE
    – INDEX-DU-TABLEAU-DES
      FOURNISSEURS
    – MONTANT#2
    – MONTANT TOTAL
       Organisation des données
          Types de données
   La constante a une valeur fixe et peut être :
    – NUMÉRIQUE
    – ALPHANUMÉRIQUE
    – FIGURATIVE
       Organisation des données
       Types de données (suite)
   La valeur de la VARIABLE dépend des
    données d’entrée. Une VARIABLE peut
    être :
    – ALPHABÉTIQUE
    – NUMÉRIQUE
    – ALPHANUMÉRIQUE
       Organisation des données
       Types de données (suite)
   Règles de formation des constantes
    numériques :
    – 1 à 18 chiffres
    – le signe (optionnel) doit être placé à la gauche
    – un point décimal peut être utilisé mais ne doit
      pas être le dernier caractère.
       Organisation des données
       Types de données (suite)
   Constantes valides
       » 142.50
       » -133
       » .085
       » -.24
   Constantes invalides
       » 2,344
       » 87.
       » $175
       Organisation des données
       Types de données (suite)
   Règles de formation des constantes
    alphanumériques :
    – débute et se termine par une apostrophe (’)
    – 1 à 120 caractères
    – tous les caractères sont valides sauf l’apostrophe
       Organisation des données
       Types de données (suite)
   Constantes valides

       » ’TOTAL’
       » ’123’
       » ’$1,000’
       » ’DATE’
       Organisation des données
       Types de données (suite)
   La CONSTANTE FIGURATIVE est un
    mot réservé qui a une signification spéciale
    pour le compilateur COBOL.

   Exemple
    MOVE ZEROS TO MONTANT-TOTAL.
    MOVE SPACES TO LIGNE-DETAIL.
  Structure du langage COBOL
 Chaque ligne d’un programme COBOL a
 une longueur de 80 caractères.

COL 1-6 (Optionnel) utilisé pour
        numéroter les lignes

COL 7     Indique une continuation ou un
          commentaire
  Structure du langage COBOL

COL 8-11    Marge A

COL 12-72   Marge B

COL 73-80   (Optionnel) utilisé pour
            identifier le programme
  Structure du langage COBOL
 La majorité des inscriptions doivent débuter
 dans les marges A ou B

Marge A
  –   en-têtes de division
  –   en-têtes de section
  –   noms de paragraphe
  –   indicateurs de niveau
Structure du langage COBOL
Marge B
– énoncés
– clauses
– descriptions de données
Structure du langage COBOL
Une des inscriptions qui ne débute pas dans
les marges A ou B est le COMMENTAIRE

Un COMMENTAIRE est indiqué en
plaçant un astérisque (*) dans la colonne 7.
Le compilateur ignore alors les autres
caractères sur cette ligne.
          Règles de codification
   Les en-têtes de division et de section :
    – débutent dans la marge A
    – se terminent par un point
    – doivent être la seule inscription sur la ligne
   Les noms de paragraphe :
    – débutent dans la marge A
    – se terminent par un point
    – doivent être suivis d’au moins un espace
          Règles de codification
   Les autres inscriptions :
    – débutent dans la marge B
    – se terminent par un point
    – doivent être suivies d’au moins un espace
  Normes de programmation
Les NORMES DE PROGRAMMATION
sont des règles supplémentaires qui ne sont
pas requises mais qui augmentent la
lisibilité des programmes.
    Normes de programmation
Ex.:
 Une inscription qui doit débuter dans la
 marge A peut débuter dans les colonnes 8,
 9, 10 ou 11. Les NORMES DE
 PROGRAMMATION peuvent exiger que le
 programmeur utilise toujours la colonne 8
         La DATA DIVISION
   La DATA DIVISION est composée de 8
    sections :
    – FILE SECTION
      » définit les zones d’entrée et de sortie
    – WORKING-STORAGE SECTION
      » définit les constantes et les variables qui ne font pas
        partie des E/S
La DATA DIVISION (suite)
– SCREEN SECTION
  » Définit les attributs des écrans
 La DATA DIVISION (suite)
La FILE SECTION contient une description
de fichier ainsi qu’une ou plusieurs
descriptions d’enregistrement pour chaque
fichier utilisé par le programme.
      La DATA DIVISION
        FILE SECTION
La description de l’enregistrement indique :
– le type et la longueur des champs qui le
  composent
– l’ordre de ces champs
        La DATA DIVISION
          FILE SECTION
01 nom-enregistrement.
  05 nom-élément-simple ….
  05 nom-item-groupe.
      10 nom-élément-simple ….
      10 nom-élément-simple ….
  05 nom-élément-simple ….
.
.
.
      La DATA DIVISION
        FILE SECTION
L’indentation des niveaux 10 et plus n’est
pas requise par la syntaxe mais augmente la
lisibilité.
           La DATA DIVISION
          FILE SECTION (suite)

                    ENR-TRANSACTION


  NO-
            EMPLACEMENT               DESCRIPTION
FACTURE


           VILLE   ENTREPÔT       NO-ITEM           NOM-ITEM



                              GRANDEUR   MODÈLE
        La DATA DIVISION
       FILE SECTION (suite)
Dans la description de l’enregistrement :
  – les données sont définies de façon hiérarchique
    (par niveau).
  – Le nom de l’enregistrement porte le numéro 01
  – les numéros 02 à 49 peuvent être utilisés pour
    identifier les items dans l’enregistrement.
     La DATA DIVISION
    FILE SECTION (suite)
– Les items qui composent un item de groupe
  doivent porter un numéro plus grand que ce
  dernier.
– Tous les items de même niveau doivent porter
  le même numéro.
– 01 débute dans la marge A, les autres numéros
  dans la marge B.
     La DATA DIVISION
    FILE SECTION (suite)
Le format général d’une description de zone
de données est :
          La DATA DIVISION
         FILE SECTION (suite)
   La clause PICTURE :
    – identifie le type de donnée
    – indique la dimension (grandeur) de l’item
   La clause USAGE identifie le type de
    représentation interne qui est utilisé pour
    enregistrer l’information. Les principaux
    types sont :
      La DATA DIVISION
        FILE SECTION
                      Représentation
     USAGE
                         interne
DISPLAY            ASCII
BINARY, COMP OU
                   Binaire
COMP-4
COMP-1 ET COMP-2   Virgule flottante
PACKED-DECIMAL
                   Décimale condensée
OU COMP-3
      La DATA DIVISION
     FILE SECTION (suite)
La clause BLANK WHEN ZERO est
utilisée avec les items numériques. Si la
valeur de l’item est nulle, l’item ne contient
que des espaces.

La clause REDEFINES permet de définir
des structures de données différentes pour
une même zone de mémoire.
      La DATA DIVISION
     FILE SECTION (suite)
La clause JUSTIFIED est utilisée pour
modifier la justification (cadrage) des items
alphanumériques ou alphabétiques.

La clause SYNCHRONIZED aligne les
données en mémoire sur des frontières de
mot afin d’optimiser le traitement.
     La DATA DIVISION
    FILE SECTION (suite)
La clause SIGN, utilisée pour les items
numériques de types DISPLAY contenant
un PICTURE S, indique le mode de
représentation du signe.
La clause OCCURS sert à définir un
tableau.
La clause VALUE permet de donner une
valeur à l’item.
      La DATA DIVISION
       Clause PICTURE
Format
         Picture      is chaîne-de-caractères
         PIC
La chaîne-de-caractères utilise un symbole pour
chaque type de donnée :
A - alphabétique
X - alphanumérique
9 - numérique
        La DATA DIVISION
         Clause PICTURE
EX.
01 CODE-PROVINCE PIC XXX.
05 PRENOM               PIC XXXXXXXXXX.
10 SALAIRE              PIC 9999999.
15 INITIALE             PIC A.
  Pour éviter les répétitions, on peut utiliser la
  forme suivante
       La DATA DIVISION
        Clause PICTURE
 Pour éviter les répétitions, on peut utiliser la
 forme suivante :

05 PRENOM              PIC X(10).
15 SALAIRE             PIC 9(7).
        La DATA DIVISION
         Clause PICTURE
La clause PICTURE :
  – est présente pour les éléments SIMPLES
    seulement.
  – Peut débuter n’importe où dans la marge B.
  – la chaîne de caractère décrivant l’item doit être
    précédée d’au moins un espace.
  – Il ne doit pas y avoir d’espace dans la chaîne de
    caractères.
      La DATA DIVISION
       Clause PICTURE
Les items numériques (PICTURE 9) sont
les seuls qui peuvent être utilisés pour les
opérations arithmétiques.

Lorsqu’une valeur décimale est lue dans un
fichier d’entrée, le point décimal n’apparaît
pas mais sa présence est implicite.
      La DATA DIVISION
       Clause PICTURE
Ex.
12500 représente 125.00

Ceci est indiqué en plaçant le symbole V à
l’endroit où doit être le point.
Ex.
05 MONTANT                  PIC 999V99
        La DATA DIVISION
         Clause PICTURE
  Le mot réservé FILLER est utilisé :
 Pour indiquer la présence dans un fichier
  d’entrée d’un ou plusieurs champs auxquels
  on ne fera pas référence.
 Pour indiquer un item ayant une valeur
  constante dans un enregistrement de sortie.
       La DATA DIVISION
        Clause PICTURE
 Le mot FILLER peut apparaître plus d’une
  fois dans un programme. À partir de la
  norme ANS 85,
 le mot FILLER est optionnel.
   PICTURES D’ÉDITION
Lorsque l’information est entreposée sur un
support magnétique (bande, disque, etc…),
les caractères d’édition ne sont pas inclus.

Certaines fonctions d’édition doivent donc
être accomplies quand ces données sont
imprimées.
   PICTURES D’ÉDITION
Ceci est accompli en utilisant des caractères
d’édition dans le PICTURE des items qui
doivent être imprimés (report-items)
      PICTURES D’ÉDITION
  Les fonctions d’édition les plus courantes
  sont :
 Suppression des zéros non-significatifs
 Impression du point décimal
 Impression des virgules
 Impression du signe de dollar
 Impression d’astérisques en guise de
  protection
     PICTURES D’ÉDITION

 Impression d’un signe (+ ou -)
 Impression d’un symbole de crédit ou de
  débit
 Insertion d’espaces
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole Z est utilisé pour supprimer
l’impression des zéros non-significatifs. Ce
symbole peut apparaître plus d’une fois
dans un PICTURE.

Le Z a le même effet que le 9, sauf qu’une
valeur de 0 qui n’est pas significative est
remplacée par un espace.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.1 :
01 E-ITEM    PIC 9999.
01 S-ITEM    PIC ZZZ9.
MOVE E-ITEM TO S-ITEM
      E-ITEM      S-ITEM
      0014        14
      0564        564
      0000        0
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole . est utilisé pour indiquer un
point décimal. Un seul point peut
apparaître dans un nombre.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.2 :
01 E-ITEM    PIC 999V99.
01 S-ITEM    PIC 999.99.
MOVE E-ITEM TO S-ITEM
      E-ITEM      S-ITEM
      12345       123.45
      00825       008.25
      00005       000.05
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.3 :
01 E-ITEM    PIC 999V99.
01 S-ITEM    PIC ZZZ.99.
MOVE E-ITEM TO S-ITEM
      E-ITEM      S-ITEM
      12345       123.45
      00825       8.25
      00005       .05
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
L’impression d’une virgule est réalisée en
plaçant le symbole , à l’endroit désiré dans
le PICTURE. Il peut y avoir plus d’une
virgule.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.4 :
01 E-ITEM    PIC 9(8)V99.
01 S-ITEM    PIC 99,999,999.99.
MOVE E-ITEM TO S-ITEM
      E-ITEM      S-ITEM
  1289344506      12,893,445.06
  0000000835      00,000,008.35
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Si le caractère d’édition Z est utilisé avec la
virgule, il supprime l’impression des
virgules qui sont suivies d’un zéro non-
significatif.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.5 :
01 E-ITEM    PIC 9(8)V99.
01 S-ITEM    PIC ZZ,ZZZ,ZZ9.99.
MOVE E-ITEM TO S-ITEM
      E-ITEM      S-ITEM
  1289344506           12,893,445.06
  0000000835      8.35
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Pour imprimer un signe de dollar, on place
le symbole $ au début du PICTURE.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.6 :
01 E-ITEM    PIC 9(8)V99.
01 S-ITEM    PIC $ZZ,ZZZ,ZZ9.99.
MOVE E-ITEM TO S-ITEM
      E-ITEM      S-ITEM
  1289344506           $12,893,445.06
  0000000835      $8.35
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole * est utilisé de la même façon
que le Z, sauf que les zéros non-significatifs
sont remplacés par des astérisques.
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Pour que COBOL distingue entre un
nombre positif et un nombre négatif, le
programmeur doit indiquer la présence d’un
signe en utilisant le symbole S.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.8 :
01 E-ITEM    PIC 9999.
01 S-ITEM    PIC S999.
MOVE -37 TO ITEM1, ITEM2.
      ITEM1       ITEM2
      0037        -037
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
L’utilisation du S indique la présence d’un
signe mais celui-ci ne sera pas
automatiquement imprimé. Il faut pour cela
utiliser le symbole +.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.9 :
01 E-ITEM    PIC S999.
01 S-ITEM    PIC +999.
MOVE E-ITEM TO S-ITEM.
      E-ITEM      S-ITEM
      +123   +123
      -014        -014
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole + peut être utilisé au début ou à
la fin du PICTURE. Il peut être employé
avec les autres caractères d’édition.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.10 :
01 E-ITEM     PIC S9(5)V99.
01 S-ITEM     PIC ZZ,ZZZ.99+.
MOVE E-ITEM TO S-ITEM.
     E-ITEM        S-ITEM
     +3490500 34,905.00+
     - 0150000 1,500.00 -
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Si on désire que le signe ne soit imprimé
que si le nombre est négatif, on peut utiliser
le symbole - .
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.11 :
01 E-ITEM    PIC S9(5)V99.
01 S-ITEM    PIC -ZZ,ZZZ.99.
MOVE E-ITEM TO S-ITEM.
      E-ITEM      S-ITEM
  +3490500        34,905.00
  - 0150000       - 1,500.00
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Certaines applications comptables exigent
qu’un symbole de crédit ou de débit
apparaisse à la suite des nombres négatifs.

Ceci est accompli en plaçant les symboles
CR ou DB à la fin du PICTURE.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.12 :
01 E-ITEM    PIC S9(5)V99.
01 S-ITEM    PIC ZZ,ZZZ.99CR.
MOVE E-ITEM TO S-ITEM.
      E-ITEM      S-ITEM
  +3490500        34,905.00
  - 0150000        1,500.00CR
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole B est utilisé pour insérer des
espaces dans un champ.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.13 :
01 E-ITEM   PIC X(6).
01 S-ITEM   PIC XXXBXXX.
MOVE E-ITEM TO S-ITEM.
     E-ITEM      S-ITEM
     J9A1A8      J9A1A8
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole / peut être utilisé de la même
façon que le B.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.14 :
01 E-ITEM   PIC 9(6).
01 S-ITEM   PIC 99/99/99.
MOVE E-ITEM TO S-ITEM.
     E-ITEM      S-ITEM
     120198      12/01/98
   PICTURES D’ÉDITION
  FONCTIONS D’ÉDITION
Le symbole 0 peut être utilisé de la même
façon que le B.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.14 :
01 E-ITEM   PIC 999.
01 S-ITEM   PIC 99900.
MOVE E-ITEM TO S-ITEM.
     E-ITEM      S-ITEM
     792         79200
   PICTURES D’ÉDITION
  SYMBOLES FLOTTANTS
Lorsque les symboles $ + - sont placés au début
d’un PICTURE dans lequel le Z est utilisé, on
peut obtenir des résultats semblables à :
            $             3.40
            -             1
Si on désire que le symbole soit toujours placé
immédiatement à la gauche du premier chiffre
significatif, on utilise un symbole flottant.
  PICTURES D’ÉDITION
 SYMBOLES FLOTTANTS
Pour créer un PICTURE qui contient un
symbole flottant, on remplace chaque Z par
le symbole qui doit précéder le nombre
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.15 :
01 E-ITEM    PIC 9(8)V99.
01 S-ITEM    PIC $$$,$$$,$$9.99.
MOVE E-ITEM TO S-ITEM.
     E-ITEM       S-ITEM
  1289344506      $12,893,445.06
  0000000835                $8.35
  0002565700         $25,657.00
  PICTURES D’ÉDITION
 SYMBOLES FLOTTANTS
Il est à noter que le premier $ + - ne prend
pas la place d’un caractère numérique.
Donc il faut compter une position de plus
afin de garder l’intégrité de la donnée.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.16 :
01 E-ITEM   PIC S9(3)V99.
01 S-ITEM   PIC $$9.99.
MOVE E-ITEM TO S-ITEM.
     E-ITEM      S-ITEM
     45309       $53.09
  PICTURES D’ÉDITION
 SYMBOLES FLOTTANTS
Pour éviter qu’un signe soit imprimé sans
chiffre, la clause BLANK WHEN ZERO est
utilisée.
    PICTURES D’ÉDITION
   FONCTIONS D’ÉDITION
Ex.17 :
01 E-ITEM   PIC S999.
01 S-ITEM   PIC ++++ BLANK WHEN ZERO.
MOVE E-ITEM TO S-ITEM.
     E-ITEM      S-ITEM
     - 023  -23
     +131   +131
       000  

								
To top