Archives par mot-clé : 88

Exemple – Niveau 88

Un élément de niveau 88 est utilisé pour nommer une condition.

L’utilisation d’un nom de condition présente deux avantages principaux :

  • Il permet d’attribuer un nom descriptif à ce qui pourrait autrement ne pas être une raison évidente pour un test.
  • Si une condition est sujette à changement en raison d’une condition indépendante de la volonté du développeur et que cette condition est testée à plusieurs endroits dans la PROCEDURE DIVISION, l’utilisation du nom de la condition dans la division au lieu de la condition réelle permet au programmeur qui maintient le programme de modifier les valeurs. ​​qui définissent la condition à un seul endroit dans la DATA DIVISION, plutôt que d’avoir à rechercher toutes les occurrences individuelles dans la PROCEDURE DIVISION.

Exemple

       05  WS-COMPANY         PIC 9(004).
           88  WS-PARIS       VALUES  3
                                     15
                                     39 THRU 42
                                     76.

       Pour tester une entreprise faisant des affaires à 
       Paris, sans les niveaux item 88, 
	   il faudrait coder : 

      * IF condition simple : 

           IF  WS-COMPANY EQUAL  3 OR 15 OR 39 OR
                                40 OR 41 OR 42 OR 76

      * IF avec condition de niveau 88 :

           IF  WS-PARIS 
               description de la condition 
           END-IF

Il ne serait pas évident pour la personne lisant le code quelle condition vous testiez.
Avec le 88 en place, vous pouvez coder le test comme ceci :

Toute personne lisant le code pourrait dire quelle condition vous testiez, et si la vérification a été effectuée plusieurs fois dans la PROCEDURE DIVISION et que la liste des entreprises faisant des affaires en Californie change, il vous suffit de modifier la liste des valeurs associées à 88 – élément de niveau.

Alors que le nom de données associé à un élément de niveau 88 peut avoir n’importe quelle valeur, l’élément de niveau 88 lui-même ne peut avoir qu’une seule des deux valeurs, vrai ou faux.
L’élément est vrai si l’élément de données immédiatement supérieur à 88 a l’une des valeurs associées à l’élément 88, sinon il est faux.

Les objets de niveau 88 peuvent être associés à des objets de groupe ou élémentaires.

IDENTIFICATION DIVISION.
PROGRAM-ID.  NIVEAU88.
AUTHOR.      LA COMMUNAUTE DU COBOL.

* Un exemple de programme qui démontre l'utilisation du niveau 88 
* Le verbe EVALUATE est utilisé. 

DATA DIVISION.
WORKING-STORAGE SECTION.

01  OPTION               PIC X(001).
    88 VOYELLE          VALUE "a", "e", "i", "o", "u"
                              "A", "E", "I", "O", "U".

    88 CONSONNE         VALUE "b", "c", "d", "f", "g", "h"
                              "j" THRU "n", "p" THRU "t", "v" THRU "z"
                              "B", "C", "D", "F", "F", "H"
                              "J" THRU "N", "P" THRU "T", "V" THRU "Z".

    88 NUMERO           VALUE "0" THRU "9".

    88 CARACTERE-VALIDE VALUE "a" THRU "z", "A" THRU "Z"
                              "0" THRU "9".

PROCEDURE DIVISION.

001-INIT.

    DISPLAY "Saisir un caractère ou un chiffre.".

    ACCEPT OPTION.

    EVALUATE TRUE
        WHEN VOYELLE   DISPLAY "OPTION " OPTION " est une VOYELLE."
        WHEN CONSONNE  DISPLAY "OPTION " OPTION " est une CONSONNE."
        WHEN NUMERO    DISPLAY "OPTION " OPTION " est un NUMERO."
        WHEN OTHER     DISPLAY  OPTION " OPTION INVALIDE"
    END-EVALUATE

    STOP RUN.