Cours cobol: Module 4 synthese

Sommaire: Cours cobol

RENDRE MODULAIRE PAR LES SOUS-PROGRAMMES
1. OBJECTIF.
2. LES SOUS-PROGRAMMES EXTERNES
2.1. PRINCIPES.
2.2. EXEMPLE 1 : APPELANT / APPELE ; TRANSFERT DE PARAMETRES.
2.3. DESCRIPTION DES DONNEES COMMUNES
2.4. CORRESPONDANCE DES DONNEES
2.5. APPEL D’UN SOUS-PROGRAMME ET TRANSFERT DE PARAMETRES : « CALL …  USING … »
2.6. TERMINAISON D’UN SOUS-PROGRAMME
3. LES SOUS-PROGRAMMES INTERNES
3.1. PRINCIPES.
3.2. EXEMPLE 2 : IMBRICATION – TRANSFERT DE PARAMETRES
3.3. VUE COMMUNE D’UN SOUS-PROGRAMME « COMMON
3.4. VUE GLOBALE D’UNE DONNEE : « GLOBAL »
3.5. L’ACCESSIBILITE DES DONNEES : « EXTERNAL »
3.6. REINITIALISATION DES DONNEES : « INITIAL
3.7. EXEMPLE 5 : TRANSFERT PAR ADRESSE OU PAR CONTENU.
3.8. TERMINAISON D’UN SOUS-PROGRAMME : « END PROGRAM
4. LIBERATION MEMOIRE ET REINITIALISATION : « CANCEL
5. EXERCICES D’APPLICATION
5.1. PROGRAMMES A ECRIRE ET A TESTER.
RÉORGANISER ARTICLES ET RUBRIQUES PAR LE TRI COBOL
1. OBJECTIF.
2. PRINCIPES GENERAUX DU TRI
2.1. TRI SANS MODIFICATION DES ENREGISTREMENTS EN ENTREE ET EN SORTIE.
2.2. TRI AVEC MODIFICATION DES ENREGISTREMENTS EN ENTREE
2.3. TRI AVEC MODIFICATION DES ENREGISTREMENTS EN SORTIE.
2.4. TRI AVEC MODIFICATION DES ENREGISTREMENTS EN ENTREE ET EN SORTIE
3. LES INSTRUCTIONS CONCERNANT LE TRI.
3.1. SELECT
3.2. S(ORT) D(ESCRIPTION
3.3. SORT.
3.4. RELEASE
3.5. RETURN.
FUSIONNER DES FICHIERS TRIÉS PAR LA FUSION COBOL
1. OBJECTIF.
2. PRINCIPES GENERAUX DE LA FUSION
2.1. FUSION SANS MODIFICATION DES ENREGISTREMENTS EN  SORTIE
2.2. FUSION AVEC MODIFICATION DES ENREGISTREMENTS EN SORTIE.
3. LES INSTRUCTIONS CONCERNANT LA FUSION
3.1. SELECT
3.2. S(ORT) D(ESCRIPTION
3.3. MERGE.
3.4. RETURN.
ANNEXES
1. CODE RETOUR.
2. CONSIGNES PARTICULIERES
3. RAPPEL D’INSTRUCTIONS COBOL.
3.1. PERFORM EN LIGNE.
3.2. NOTION DE BLOC.
3.3. TRAITEMENT DE CARACTERES
3.4. EVALUATE
4. JEU D’ESSAI
4.1. PRINCIPE GENERAL
4.2. MISE EN OEUVRE.

♣ Extrait du cours

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).
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 ».
2.2. EXEMPLE 1 : APPELANT / APPELÉ ; TRANSFERT DE PARAMÈTRES. 
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.
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 PROCE
DURE 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;
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.
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.

……..

Cours pdf

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *