Support stagiaire COBOL MODULE 4 Synthèse Sommaire RENDRE MODULAIRE PAR LES SOU
Support stagiaire COBOL MODULE 4 Synthèse Sommaire RENDRE MODULAIRE PAR LES SOUS-PROGRAMMES.................................................... 6 1. OBJECTIF. .........................................................................................................................................................................6 2. LES SOUS-PROGRAMMES EXTERNES......................................................................................................................7 2.1. PRINCIPES. .................................................................................................................................................................7 2.2. EXEMPLE 1 : APPELANT / APPELE ; TRANSFERT DE PARAMETRES. ...........................................................8 2.3. DESCRIPTION DES DONNEES COMMUNES. .......................................................................................................9 2.4. CORRESPONDANCE DES DONNEES...................................................................................................................10 2.5. APPEL D’UN SOUS-PROGRAMME ET TRANSFERT DE PARAMETRES : « CALL ... USING ... » ..............11 2.6. TERMINAISON D’UN SOUS-PROGRAMME........................................................................................................15 3. LES SOUS-PROGRAMMES INTERNES.....................................................................................................................16 3.1. PRINCIPES. ...............................................................................................................................................................16 3.2. EXEMPLE 2 : IMBRICATION - TRANSFERT DE PARAMETRES......................................................................17 3.3. VUE COMMUNE D’UN SOUS-PROGRAMME « COMMON »............................................................................18 3.4. VUE GLOBALE D’UNE DONNEE : « GLOBAL »....................................................................................................20 3.5. L’ACCESSIBILITE DES DONNEES : « EXTERNAL ». ........................................................................................22 3.6. REINITIALISATION DES DONNEES : « INITIAL ».............................................................................................23 3.7. EXEMPLE 5 : TRANSFERT PAR ADRESSE OU PAR CONTENU. .....................................................................26 3.8. TERMINAISON D’UN SOUS-PROGRAMME : « END PROGRAM »..................................................................27 4. LIBERATION MEMOIRE ET REINITIALISATION : « CANCEL »......................................................................27 5. EXERCICES D'APPLICATION....................................................................................................................................28 5.1. PROGRAMMES A ECRIRE ET A TESTER. ...........................................................................................................28 RÉORGANISER ARTICLES ET RUBRIQUES PAR LE TRI COBOL................................... 39 1. OBJECTIF. .......................................................................................................................................................................39 2. PRINCIPES GENERAUX DU TRI................................................................................................................................40 2.1. TRI SANS MODIFICATION DES ENREGISTREMENTS EN ENTREE ET EN SORTIE. ..................................40 2.2. TRI AVEC MODIFICATION DES ENREGISTREMENTS EN ENTREE..............................................................41 2.3. TRI AVEC MODIFICATION DES ENREGISTREMENTS EN SORTIE. ..............................................................42 2.4. TRI AVEC MODIFICATION DES ENREGISTREMENTS EN ENTREE ET EN SORTIE...................................43 3. LES INSTRUCTIONS CONCERNANT LE TRI. ........................................................................................................44 3.1. SELECT......................................................................................................................................................................44 3.2. S(ORT) D(ESCRIPTION)..........................................................................................................................................45 3.3. SORT..........................................................................................................................................................................46 3.4. RELEASE...................................................................................................................................................................49 3.5. RETURN. ...................................................................................................................................................................49 FUSIONNER DES FICHIERS TRIÉS PAR LA FUSION COBOL.......................................... 54 1. OBJECTIF. .......................................................................................................................................................................54 2. PRINCIPES GENERAUX DE LA FUSION..................................................................................................................55 2.1. FUSION SANS MODIFICATION DES ENREGISTREMENTS EN SORTIE.......................................................55 2.2. FUSION AVEC MODIFICATION DES ENREGISTREMENTS EN SORTIE. ......................................................56 Cobol - MODULE 4 - Synthèse page 4 Sommaire 3. LES INSTRUCTIONS CONCERNANT LA FUSION.................................................................................................57 3.1. SELECT......................................................................................................................................................................57 3.2. S(ORT) D(ESCRIPTION)..........................................................................................................................................57 3.3. MERGE. .....................................................................................................................................................................59 3.4. RETURN. ...................................................................................................................................................................61 ANNEXES ............................................................................................................................. 65 1. CODE RETOUR. .............................................................................................................................................................65 2. CONSIGNES PARTICULIERES...................................................................................................................................67 3. RAPPEL D’INSTRUCTIONS COBOL. ........................................................................................................................68 3.1. PERFORM EN LIGNE. .............................................................................................................................................68 3.2. NOTION DE BLOC...................................................................................................................................................69 3.3. TRAITEMENT DE CARACTERES..........................................................................................................................70 3.4. EVALUATE...............................................................................................................................................................71 4. JEU D’ESSAI....................................................................................................................................................................73 4.1. PRINCIPE GENERAL...............................................................................................................................................73 4.2. MISE EN OEUVRE. ..................................................................................................................................................73 Cobol - MODULE 4 - Synthèse page 5 F I C H E 01 Rendre modulaire par les sous-programmes 1. OBJECTIF. Avec l’instruction PERFORM, des « séquences » répétitives de « code » (instructions) peuvent être écrites sous forme de « blocs » indépendants. On peut écrire de telles séquences sous forme de programmes indépendants « appelés » par un programme principal, ou éventuellement plusieurs programmes principaux. Le plus souvent les « sous-programmes » sont utilisés : pour des parties de programmes particulièrement complexes, et/ou par différentes « unités de traitement » (UT), et/ou offrir des améliorations de performances, lorsqu’ils sont écrits en langage assembleur (par exemple). U T0 SSPG 0 O U U T1 U T2 SSPG 1 NOTES Cobol - MODULE 4 - Synthèse page 6 Rendre modulaire par les sous-programmes 01 2. LES SOUS-PROGRAMMES EXTERNES. 2.1. PRINCIPES. Les sous-programmes externes sont des programmes écrits en COBOL, ou tout autre langage, et compilés indépendamment du programme principal appelant. Programme principal et sous-programmes sont ensuite reliés par le programme éditeur de liens. Le sous-programme COBOL est bâti comme tout programme COBOL avec au minimum les divisions suivantes : ♦ IDENTIFICATION DIVISION. ♦ PROCEDURE DIVISION. La différence avec le programme COBOL normal réside dans l’introduction : ♦ de clauses « USING » dans la PROCEDURE DIVISION, ou dans ENTRY ; ♦ d’une LINKAGE SECTION dans le sous-programme, pour établir une liaison avec les zones de données du programme principal désignées dans la clause « USING » de l’ordre « CALL ». L’appel d’un sous-programme externe (branchement du traitement depuis le programme principal COBOL), vers le sous-programme est réalisé par l’ordre « CALL ». NOTES Cobol - MODULE 4 - Synthèse page 7 Rendre modulaire par les sous-programmes 01 2.2. EXEMPLE 1 : APPELANT / APPELÉ ; TRANSFERT DE PARAMÈTRES. PROGRAMME PRINCIPAL SOUS-PROGRAMME 8 12 8 12 IDENTIFICATION DIVISION. IDENTIFICATION DIVISION. PROGRAM-ID. PRINC001. PROGRAM-ID. SSPROG01. ENVIRONMENT DIVISION. ENVIRONMENT DIVISION. ...... ...... DATA DIVISION. DATA DIVISION. FILE SECTION. ...... FD ENTREE LINKAGE SECTION. 01 E-ART.. 01 K-ART1. 02 E-COD PIC X. 02 K-COD1 PIC X. 02 E-IND PIC 9(15). 02 K-IND1 PIC 9(15). 02 PIC X(64). 02 PIC X(64). WORKING-STORAGE SECTION. 01 K-ART2. 01 W-ART. 02 K-COD2 PIC X. 02 W-COD PIC X. 02 K-IND2 PIC 9(15). 02 W-IND PIC 9(15). 02 K-LIB PIC X(16) OCCURS 4. 02 W-LIB PIC 9(16) OCCURS 4. PROCEDURE DIVISION. PROCEDURE DIVISION USING K-ART1 K- ART2 ...... ...... CALL « SSPROG01 » USING E-ART W- ART. ...... ...... FINSSPROG01. STOP RUN. EXIT PROGRAM. NOTES Cobol - MODULE 4 - Synthèse page 8 Rendre modulaire par les sous-programmes 01 2.3. DESCRIPTION DES DONNÉES COMMUNES. Le programme principal et le sous-programme COBOL sont compilés séparément. Il est donc nécessaire que la description des zones de données communes apparaisse dans les DATA DIVISION du programme principal et du sous-programme. La LINKAGE SECTION permet de décrire des zones de données sans réserver de place en mémoire centrale, mais en leur attribuant une adresse virtuelle dans le sous-programme. Il était exclu de réserver deux fois ces zones en mémoire centrale. Une zone de données commune sera donc décrite normalement dans le programme principal en FILE SECTION ou WORKING-STORAGE SECTION et sera décrite dans le sous-programme dans la LINKAGE SECTION. L’ordre d’appel de sous-programme « CALL » aura donc pour effet d’attribuer des adresses aux zones de données de la LINKAGE SECTION. NOTES Cobol - MODULE 4 - Synthèse page 9 Rendre modulaire par les sous-programmes 01 2.4. CORRESPONDANCE DES DONNÉES. 2.4.1. PROCEDURE DIVISION .... USING .... Si l’entrée du sous-programme est le premier ordre de la PROCEDURE DIVISION, la clause « USING » suit cet ordre : PROCEDURE DIVISION [ USING nom-donnée-A [ nom-donnée-B ] ] Dans la liaison effectuée entre le programme principal et le sous-programme, on fait correspondre : ♦ « nom-donnée-1 » du programme principal à « nom-donnée-A » du sous-programme; ♦ « nom-donnée-2 » du programme principal à « nom-donnée-B » du sous-programme; ♦ etc... 2.4.2. ENTRY .... USING .... Si l’entrée du sous-programme n’est pas le premier ordre de la PROCEDURE DIVISION, le point d’entrée dans le sous-programme est désigné par une clause ENTRY incluant la clause USING avec le format : ENTRY nomsymboliqueentrée [ USING nomdonnéeA [ nom-donnée-B ] ] De la même façon, on fait correspondre ici les noms de zones de données deux à deux suivant leur rang : ♦ « nom-donnée-1 » du programme principal à « nom-donnée-A » du sous-programme; ♦ « nom-donnée-2 » du programme principal à « nom-donnée-B » du sous-programme; ♦ etc... NOTES Cobol - MODULE 4 - Synthèse page 10 Rendre modulaire par les sous-programmes 01 2.5. APPEL D’UN SOUS-PROGRAMME ET TRANSFERT DE PARAMÈTRES : « CALL ... USING ... » Le programme principal COBOL doit contenir dans le corps de traitement (en PROCEDURE DIVISION) le verbe « CALL » pour réaliser le traitement contenu dans un sous-programme externe. Le format de cette instruction est le suivant : CALL { nom-donnée-1 littéral-1 } [[ USIN G { BY REFERENCE BY CONTENT } nom-donnée-2 ]..] [ ON OVERFLOW ordre-impératif-1 ] [ [ ON EXCEPTION ordre-impératif-2 ] [ NOT ON EXCEPTION ordre-impératif-3] ] [ END-CALL ] cf exemple 1 : CALL « SSPROG01 ». Dans ce cas, l’adresse de branchement dans le sous-programme, encore appelée point-d’entrée, est le début même du sous-programme. NOTES Cobol - MODULE 4 - Synthèse page 11 Rendre modulaire par les sous-programmes 01 2.5.1. DÉSIGNATION DU SOUS PROGRAMME APPELÉ. « Nom-Donnée-1 ou Littoral » désigne le nom du sous-programme appelé, nom qui doit respecter la règle de formation des noms de programmes, c’est à dire au maximum 6 caractères pour le PC et 8 caractères autrement, dont le premier est obligatoirement alphabétique. Avec « Nom-Donnée-1 », le nom du sous-programme est inclus dans la zone de données. Avec « Littéral-1 », le nom du sous-programme est directement explicité dans l’instruction (cas général). 2.5.2. PARTAGE DE DONNÉES : CLAUSE USING. USING { BY REFERENCE BY CONTENT } nom-donnée-2 Auparavant le COBOL ne comportait que la clause BY REFERENCE, aujourd’hui option par défaut. Cette clause signifie que le programme appelant et le sous-programme appelé ont en commun une zone mémoire « Nom-Donnée-2 », ou plusieurs zones. cf exemple 1 : CALL « SSPROG01 » USING E-ART W-ART. Il est impératif que les descriptions de zones de données soient identiques dans les deux programmes. NOTES Cobol - MODULE 4 - Synthèse page 12 Rendre modulaire par les sous-programmes 01 Et, puisque ces zones de données sont communes, le sous-programme appelé peut très bien modifier le contenu des zones. Par exemple, on peut appeler un sous-programme de conversion de chiffres, en écrivant : CALL « CNVCHLET » USING E-CHIFFRE S-LETTRE. On passe au sous-programme la valeur contenue dans « E-CHIFFRE » qui renvoie au programme la valeur correspondante « cent onze » dans « S-LETTRE ». Les transmissions avec d’autres langages sont possible (voir les consignes de chaque constructeur). Nous verrons plus loin qu’avec les données « EXTERNAL », existe un nouveau mode de partage des données. uploads/Management/ cobol-module-4-synthese-pdf.pdf
Documents similaires










-
114
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 23, 2021
- Catégorie Management
- Langue French
- Taille du fichier 1.2253MB