Support stagiaire COBOL MODULE 2 Les tables Sommaire PRÉSENTATION DES TABLES ..

Support stagiaire COBOL MODULE 2 Les tables Sommaire PRÉSENTATION DES TABLES ............................................................................................. 6 1. PRESENTATION...............................................................................................................................................................6 1.1. DEFINITION................................................................................................................................................................6 1.2. ILLUSTRATION. ........................................................................................................................................................6 1.3. TERMINOLOGIE APPLIQUEE AUX TABLES......................................................................................................10 1.4. INTERETS DES TABLES.........................................................................................................................................12 DESCRIPTION D'UNE TABLE ............................................................................................. 13 1. DESCRIPTION. ...............................................................................................................................................................13 1.1. CLAUSE OCCURS....................................................................................................................................................13 1.2. EXEMPLES DE DESCRIPTION DE TABLE ..........................................................................................................15 1.3. TP1A...........................................................................................................................................................................21 UTILISATION DES TABLES................................................................................................. 22 1. PRESENTATION INDEX/INDICES.............................................................................................................................22 1.1. INTRODUCTION ......................................................................................................................................................22 1.2. INDICE.......................................................................................................................................................................22 1.3. INDEX........................................................................................................................................................................24 1.4. INSTRUCTION SET DANS LE CAS D'UNE UTILISATION D'INDEX ...............................................................26 1.5. TABLEAU COMPARATIF INDICE / INDEX.........................................................................................................27 CHARGEMENT D'UNE TABLE ............................................................................................ 28 1. CHARGEMENT D'UNE TABLE PAR ASSIGNATION DE VALEURS PREDEFINIES. .....................................28 2. CHARGEMENT PAR INITIALISATION....................................................................................................................29 3. CHARGEMENT DYNAMIQUE A PARTIR D'UN FICHIER. ..................................................................................31 3.1. CHARGEMENT SEQUENTIEL. ..............................................................................................................................32 3.2. CHARGEMENT DIRECT. ........................................................................................................................................38 3.3. TP2A...........................................................................................................................................................................41 3.4. TP3A...........................................................................................................................................................................42 3.5. TP4A(DEBUT)...........................................................................................................................................................43 RECHERCHE EN TABLE ..................................................................................................... 44 1. RECHERCHE SEQUENTIELLE. .................................................................................................................................44 2. L'ORDRE SEARCH. .......................................................................................................................................................47 3. RECHERCHE DIRECTE. ..............................................................................................................................................49 4. RECHERCHE DICHOTOMIQUE. ...............................................................................................................................50 5. L'ORDRE SEARCH ALL. ..............................................................................................................................................51 5.1. TP4A(FIN)..................................................................................................................................................................56 Cobol - MODULE 2 - Les tables page 4 Sommaire TRI DE TABLE ...................................................................................................................... 57 1. EXEMPLE D'ALGORITHME DE TRI : LE BUBBLE-SORT...................................................................................57 2. AUTRE EXEMPLE D'ALGORITHME DE TRI..........................................................................................................61 3. UTILISATION DU TRI COBOL (SORT).....................................................................................................................63 3.1. TP5A...........................................................................................................................................................................65 Cobol - MODULE 2 - Les tables page 5 F I C H E 01 Présentation des tables 1. PRÉSENTATION. 1.1. DÉFINITION. Une table est un groupe de données composé d'éléments simples ayant tous des attributs identiques (même nature et même longueur) 1.2. ILLUSTRATION. 1.2.1. REPRÉSENTATION VISUELLE D'UNE TABLE. Une maison d'édition commercialise trois collections. Chacune de ces collections aborde deux thèmes. Enfin, chacun de ces thèmes est traité par trois spécialistes du sujet exposé. Pour représenter cette situation on peut adopter le schéma suivant : Transparent 02. COLLECTION(1) LIB_COLLECTION(1) THEME(1,1) NOM_PROF(1,1,1) NOM_PROF(1,1,2) NOM_PROF(1,1,3) COLLECTION(2) LIB_COLLECTION(2) THEME(2,1) NOM_PROF(2,1,1) NOM_PROF(2,1,2) NOM_PROF(2,1,3) THEME(1,2) NOM_PROF(1,2,1) NOM_PROF(1,2,2) NOM_PROF(1,2,3) Une autre représentation possible pourrait être : LIB_COLLECTION(1) THEME(1,1) NOM_PROF(1,1,1) NOM_PROF(1,1,2) NOM_PROF(1,1,3) COLLECTION(2) LIB_COLLECTION(2) THEME(2,1) NOM_PROF(2,1,1) NOM_PROF(2,1,2) NOM_PROF(2,1,3) THEME(1,2) NOM_PROF(1,2,1) NOM_PROF(1,2,2) NOM_PROF(1,2,3) COLLECTION(1) NOTES Cobol - MODULE 2 - Les tables page 6 Présentation des tables 01 Mais il existe encore d'autres façons de schématiser cette situation. Ces figures font apparaître la répétition de zones identiques, ainsi que les niveaux hiérarchiques. Ainsi, la donnée LIB_COLLECTION est répétée 2 fois sur la figure ci-dessus ; son contenu sera différent selon la collection envisagée, mais sa description sera identique, ici : zone alphanumérique de 20 caractères. D'autre part, pour une collection donnée, nous aurons le choix entre 2 thèmes. Ainsi chacune des zones groupes COLLECTION peut être vue comme une grosse boîte, à l'intérieur de laquelle nous aurons deux boîtes plus petites, les boîtes THEME, elles-mêmes contenant 3 petites boîtes avec le nom d'un professeur. Ceci implique que si l'on souhaite connaître le nom d'un des professeurs, il faudra indiquer la collection dont il s'agit, le thème, et le rang du professeur. D'où la nécessité des indices, qui vont du niveau général au niveau le plus fin. Si l'on veut le nom du professeur de rang 2, traitant le thème 2 de la collection 1, on regardera le contenu de la boîte NOM_PROF(1,2,2) où : NOM_PROF rang du professeur rang du thème rang de la collection ( 1 2 2 ) NOTES Cobol - MODULE 2 - Les tables page 7 Présentation des tables 01 1.2.2. RECHERCHE DANS UNE TABLE Une table permet la recherche d’informations. Différentes méthodes sont utilisées. Une table peut être regardée comme un dictionnaire dans lequel il n'y aurait qu'un mot par page. On aurait alors le schéma suivant : <--------- le numéro de page le nom ----------> <--------- la définition NOTES Cobol - MODULE 2 - Les tables page 8 Présentation des tables 01 Recherche d'un mot dans un dictionnaire : Première méthode (principe de la recherche séquentielle) : ♦ Supposons que les mots ne soient pas classés par ordre alphabétique. Pour retrouver un mot, une méthode consiste à consulter une à une toutes les pages du dictionnaire. C'est ainsi que commençant par le début ou par la fin du dictionnaire, nous comparerons le mot cherché avec le mot lu sur les pages successives et ce jusqu'à ce que l'on trouve le mot voulu (à moins qu'il n'existe pas, auquel cas on ne s'en apercevra que lorsque tout le dictionnaire aura été consulté). Cette première méthode peut toujours être utilisée. Deuxième méthode (principe de la recherche directe) : ♦ On cherche le mot se trouvant à la nième page. On va directement à la page recherchée, et on récupère l'information voulue. Cette recherche nécessite un classement, c'est-à-dire une relation entre le numéro de page et le mot. Troisième méthode (principe de la recherche dichotomique) : ♦ La méthode pour trouver un mot dans le dictionnaire consiste, ici, à le feuilleter et, en comparant le mot cherché avec le mot de la page à laquelle le dictionnaire est ouvert, à déterminer si le mot cherché se trouve avant ou après le mot lu et ainsi de suite jusqu'à ce que le mot cherché soit identique au mot lu. Cette méthode n'est valable que si les mots dans le dictionnaire sont triés par ordre alphabétique. Sans cet ordre il serait impossible de situer le mot cherché par rapport au mot lu. NOTES Cobol - MODULE 2 - Les tables page 9 Présentation des tables 01 1.3. TERMINOLOGIE APPLIQUÉE AUX TABLES. ♦ le mot recherché s'appelle argument de recherche ♦ le mot dans le dictionnaire se nomme argument ou argument de référence ♦ la définition s'appelle la fonction recherchée ♦ la page s'appelle un poste ou un élément ♦ le numéro de la page est le rang du poste ou de l'élément La table a plusieurs éléments tout comme le dictionnaire a plusieurs pages. On a ainsi en mémoire centrale de l'ordinateur une table dont les éléments se suivent de la manière suivante : 1 2 3 4 5 6 TABLE Cette table est composée de 6 éléments ou postes, chacun étant lui-même composé d'un argument et d'une fonction. NOTES Cobol - MODULE 2 - Les tables page 10 Présentation des tables 01 Une table en mémoire qui se compose comme suit : 1 2 3 4 5 6 A B C D E F Z 26 Correspond au dictionnaire suivant : A 1 1ère lettre B 2 C 3 Z 26 La lettre constitue l'argument, le nombre constitue la fonction NOTES Cobol - MODULE 2 - Les tables page 11 Présentation des tables 01 1.4. INTÉRÊTS DES TABLES. les tables sont fréquemment utilisées en gestion : ♦ pour vérifier que les indicatifs sont valides (par exemple lorsqu'un client demande une pièce P4810 pour une machine M513, on vérifie dans la table que machine et pièce existent et sont compatibles) ♦ pour rechercher en table le prix unitaire d'un article connaissant son code (on créerait une table des codes avec pour chacun d'eux le prix unitaire applicable) ♦ sélection d'articles selon critère(s) (par exemple dans une entreprise, sélection des salariés ayant un nombre n d'années d'ancienneté) NOTES Cobol - MODULE 2 - Les tables page 12 F I C H E 02 Description d'une table 1. DESCRIPTION. La table est décrite dans la partie "WORKING- STORAGE SECTION" de la DATA DIVISION d'un programme ; lors de l'exécution de ce dernier, cette description permettra la réservation en mémoire centrale d'emplacements contigus de mémoire. 1.1. CLAUSE OCCURS. Elle permet de définir une seule fois plusieurs données semblables : elle indique le nombre de fois qu'un élément de donnée est répété et permettra l'utilisation des indices et des index. Format 1 de la clause OCCURS : nom_donnée OCCURS nb_entier [TIMES] [ASCENDING KEY (ou DESCENDING KEY) IS nom_donnée1[,nom_donnée2]] [INDEXED BY nom_index1[,nom_index2......]] Format 2 de la clause OCCURS nom_donnée OCCURS nb_entier1 TO nb_entier2 [TIMES] DEPENDING ON nom_donnée3 [ASCENDING KEY (ou DESCENDING KEY) IS nom_donnée4[,nom_donnée5]] [INDEXED BY nom_index1[,nom_index2......]] NOTES Cobol - MODULE 2 - Les tables page 13 Description d'une table 02 commentaires : ♦ Les parties entre crochets sont facultatives ♦ dans le format 1, la valeur de nb_entier représente le nombre exact de répétitions, et est un entier positif ♦ dans le format 2, la valeur courante de la zone spécifiée par nom_donnée3 représente le nombre de répétitions. La valeur de nb_entier2 représente le nombre maximum de répétitions et nb_entier1 le nombre minimum. Ceci n'implique pas que la longueur de nom_donnée soit variable, mais simplement que le nombre de répétitions l'est. La valeur de la zone spécifiée par nom_donnée3 doit être comprise entre nb_entier1 et nb_entier2 ♦ KEY IS indique que la donnée répétitive (ici, nom_donnée) est ordonnée en séquence croissante ou décroissante, selon les valeurs contenues dans nom_donnée1, nom_donnée2.... ♦ la clause ASCENDING ou DESCENDING KEY IS s'emploie pour signaler un critère de classement, elle indique que la donnée répétitive (ici nom_donnée) est ordonnée en séquence croissante ou décroissante, selon les clés. Ce critère de classement sera utilisé notamment par l'instruction SEARCH ALL (recherche dichotomique en table). Les arguments de classement doivent être situés à une adresse fixe par rapport au début de l'élément dont ils sont les clefs ; ils ne doivent pas contenir de clause OCCURS. ♦ INDEXED BY nom_index1 définit un uploads/Science et Technologie/ cobol-modules-2-les-tables-pdf.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager