COBOL. Procédure Division

BoTTom |    Changer de couleur
 
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
  LA PROCEDURE DIVISION est la partie traitement d'un programme COBOL
 
   CONSTANTES FIGURATIVES
 
      SPACE ou SPACES     -> des espaces
 
      ZERO                -> des zéros
 
      LOW-VALUE           -> plus petite valeur possible
      HIGH-VALUE          -> plus grande valeur possible
 
      QUOTE               -> caractère '
 
      ALL                 -> rempli de
 
                             ALL '*' = remplir du caractère '*'
 


|    Changer de couleur
 
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> INSTRUCTIONS de base
 
        STOP RUN.
 
           Fin du programme.
 
 
        DISPLAY  literal1 literal2 ...
 
           DISPLAY "Nombre de clients" NBR.
 
        ACCEPT   variable.
 
           DISPLAY "Combien de fois ?".
           ACCEPT NBFOIS.
 
 




|    Changer de couleur
 
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> INSTRUCTIONS de base
 
        ACCEPT .. FROM    DATE            date sur 6 (YYMMDD)
                          DATE YYYYMMDD   date sur 8
                          DAY             date format juien
 
                          DAY OF WEEK
                          TIME
 
 
        ACCEPT .. FROM nom-mnémonique (voir SPECIAL NAMES)
 
 
                          permet de lire I-O FeedBack Area
                                         Local Data Area
                                         Data Area nomminative
 


|    Changer de couleur
 
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> INSTRUCTIONS, affectation
 
        MOVE A TO B                                              

B est effacé avant l'affectation

le cadrage se fait - à gauche pour l'alphanumérique
- sur la virgule pour le numérique

MOVE CORR[ESPONDING] A to B

copie les sous-zone de A ayant le même nom dans B

OPTION(*PRTCORR) dans la commande de compilation
imprime la liste des zones copiées

|    Changer de couleur
 
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> INSTRUCTIONS, calcul
 
        ADD X TO y.                              y=y+X
        ADD X TO Y GIVING resultat.              R=X+Y
 
        SUBSTRACT X TO Y.                        y=y-X
        SUBSTRACT X TO Y GIVING R.               R=y-X
 
        MULTIPLY X BY Y.                         Y=X*Y
        MULTIPLY X BY Y GIVING R.                R=X*Y
 
        DIVIDE X INTO Y                          Y=Y/X
        DIVIDE X BY Y GIVING R                   R=Y/X
        DIVIDE X BY Y REMAINDER Z                Z=Modulo(Y/X)
 
        partout vous pouvez ajouter ROUNDED
                                    On SIZE ERROR ...


|    Changer de couleur
 
        COMPUTE
 
        COMPUTE R [ROUNDED] = expression arithmétique acceptant :
 
                              +  addition        - soustraction
                              /  division        * multiplicaiton
                              ** élévation à la puissance
 
                              vous pouvez aussi ajouter ( et ) 
 
        chaque partie de la procédure division peut avoir un nom
        (ou nom de paragraphe) suivi de .
     .......................................................................
     : si vous ne mettez aucun nom de paragraphe, le compilateur vous dira :
     :    "LNC0884 Nom de paragraphe manquant.  Accepté."                  :
     :.....................................................................:
          GOTO [GO TO] nom-de-paragraphe              saut à une instruction             PERFORM      nom-de-paragraphe              sous/programme           PERFORM      paragraphe1 THRU paragraphe2                              

|    Changer de couleur
 
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> Conditions, instruction IF.
 
        X [IS] | [NOT] <  | Y
               |       >  |
               |       =  |
               |       >= |
               |       <= |
 
        IF condition
          THEN instructions
          [ELSE instructions]
        END-IF.
 
        les tests IF acceptent AND/OR
        les tests IF peuvent s'imbriquer
        un point ferme tous les tests en cours                         
 


|    Changer de couleur
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> instructions Fichiers
 
        OPEN input
             i-o      >------ nom-fichier
             output                       -----> mise à blanc
             extended                     -----> en ajout, sans mise à blanc
 
 
        CLOSE         >------ nom-fichier
 
      lecture séquentielle, accès séquentiel
 
        READ nom-fichier [with no lock]
                       AT END ordre impératif
                       [NOT AT END ordre impératif]
        END-READ.
 
 


|    Changer de couleur
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> instructions Fichiers
 
      lecture séquentielle, accès dynamique
 
        READ nom-fichier [Next, prior, first, last] [with no lock]
                       AT END ordre impératif
                       [NOT AT END ordre impératif]
        END-READ.
 
      lecture directe, accès directe
 
        charger la zone clé, puis :
 
        READ nom-fichier [with no lock]
                       INVALID KEY ordre impératif
                       [NOT INVALID KEY ordre impératif]
        END-READ.
 


|    Changer de couleur
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> instructions Fichiers
 
      Positionnement sur un fichier indexé.
       prépare la prochaine lecture (comme SETLL RPG)
 
      START nom-du-fichier KEY IS  equal (=)
                                   greater (>)
                                   not less (not <)
                                   greater or equal (>=)
       EXTERNALLY-DESCRIBED-KEY ou nom de zone
        [INVALID KEY ordre impératif]
         [NOT INVALID KEY ordre impératif]
      END-START.
 
      Une clé partielle peut être utilisée si et seulement si, la séquence
      des zones clés est respectée et les noms de zone cités sont ceux
      définis en clause SELECT.
 


|    Changer de couleur
                       PROCEDURE DIVISION 
 
       GENERALITES 
 
     -> instructions Fichiers
 
      REWRITE nom-enregistrement (niveau 01)
       [INVALID KEY ordre impératif]
       [NOT INVALID KEY ordre impératif]
      END-REWRITE.
 
      WRITE  nom-enregistrement
       [INVALID KEY ordre impératif]
       [NOT INVALID KEY ordre impératif]
      END-WRITE.
 
      DELETE nom-fichier
       [INVALID KEY ORDRE IMPÉRATIF]
      END-DELETE.
 
      COMMIT/ROLLBACK
         implique I-O CONTROL COMMITMENT CONTROL FOR nom-fichier




©AF400