Cours Cobol : PREPARATION/ORGANISATION D’UN PROGRAMME COBOL
La création du fichier par le syateme de l’ordinateur se saie acces sequentiel, dans 1’ordre croissant de la valeur de la cle de que enregistrement logique.
corresplusieurs cylindres sont necessaires.au fur et a mesure de ia celetion du fichier sont créés des index de pistes et de cylindres.
Supposons que nous générions un fichier à organisation sequentian. de lngueur variable et possedant bien entendu une cle.Cette cle eer iei le numéro de 1’enregistrement, elle est constituée des 4 premiers caracteres de chaque enregistrement logique.La valeur de la clé de chaque enregistrement est donc comprise entre 1 et 1000. Ces enregig-trements logiques sont groupés en bloc correspondant à une piste. Ici les 10 premiers enregistrements (1 ã 10) sont placés sur la piste 1, les 5 suivants sur la piste 2, etc. les derniers de la première centai-le sur la piste n du cylindre 1, les enregistrements logiques dont la :lé est supérieure ã 100 se trouvent dans d’autres cylindres.
Lors de la création d’un tel fichier, le systême crée des index de istes pour chaque cylindre et également des index de cylindres.
Ainsi 1’index de cylindre est constitué de la façon suivante :on inge séquentiellement la valeur maximale de la clé du dernier enregis-ement logique que contient chaque cylindre.
De 1a même façon est créé 1’index des pistes pour chaque
Nous avons choisi ici des clés numériques mais il en aurait été de même avec des clés alphanumériques.
CREATION D’UN FICHIER A ORGANISATION
Créer un tel fichier nécessite d’attribuer à chaque enregistrement Logique une clé.
Lors de la création d’un tel fichier par le système, les enregistrements logiques sont placés sur le disque là où il y a de la place. Aussi, le système crée une table où figure la valeur de la clé et en regard, 1’adresse du cylindre et de la piste où est écrit 1’enregistrement.
I1 faut remarquer que chez certains constructeurs on peut créer un fichier ã accès direct sans attribuer de clés aux enregistrements logiques. C’est le système qui crée un numéro d’ordre au moment de la création du fichier et 1’affecte à chacun des enregistrements logiques au fur et à mesure de leur rencontre.
Le système crée ainsi une clé numérique dont la valeur varie de 1 ãn si le fichier contient n enregistrements logiques. Certains constructeurs permettent d’affecter à des enregistrements logiques différents. des clés identiques.
Dans ce cas la table créée par le système contient plusieurs adresses des cylindres et des pistes pour une même valeur de la clé.
Dans le cas général, où le programmeur a affecté une clé à chaque enregistrement logique
Cobol: Consultations des fichiers
Nous allons voir maintenant comment se fait 1’accès au fichier suivant leur organisation.
ACCES A UN FICHIER A ORGANISATION SEQUENTIELLE.
Les enregistrements logiques étant placés les uns derrière les autres et ne possédant aucune marque spécifique les caractérisant, si 1’on veut le nième enregistrement il est nécessaire de lire les n-1
précédents.
Seul donc 1’accês séquentiel peut être utilisé avec de tels fichiers.
Nous avons dit précédemment qu’une organisation séquentielle peut se faire sur n’importe quel support. Toutefois, si 1’on veut modifier dans un fichier un certain nombre d’enregistrements, pour une mise ã jour par exemple, il est nécessaire de créer un autre fichier.
ACCES A UN FICHIER A ORGANISATION SEQUENTIELLE INDEXER
1) Recherche dans 1’index des cylindres de l’entrée qui contient la clé dont la valeur est supérieure et la plus proche de celle de ‘enregistrement désiré. Le système trouve alors un pointeur qui indique que le cylindre sur lequel se trouve le bloc cherché.
2) Recherche dans l’index des pistes de l’entrée de ce cylindre qui contient la clé dont la valeur est supérieure et la plus proche de celle de l’enregistrement désiré. Le système trouve alors un pointeur qui indique la piste sur laquelle se trouve le bloc cherche.
3) Recherche sur cette piste de la clé de 1’enregistrement désire. Lorsque cette clé est trouvée, 1’enregistrement qui la suit immédiate-‘ ment, est transmis, c’est l’enregistrement cherche.
Nous avons montré sur la figure 11 en pointille la recherche de 1’enregistrement logique qui a pour clé 17.
ACCES A UN FICHIER A ORGANISATION A ACCES DIRECT
Les enregistrements logiques étant placés aléatoirement sur le disque (puisque implantés aux endroits où il y a de la place) il est impossible de consulter un tel fichier en accès séquentiel. I1 est absolument indispensable pour avoir accès ã un enregistrement logique, de donner la valeur de sa clé. Le systèmes consulte alors la table constituée à la création du fichier et obtient 1’adresse de 1’enregistrement considéré. I1 existe chez certains constructeurs une technique un peu particulière qui permet de référencer plusieurs enregistrements logiques différents avec la même clé.
Dans ce cas, lorsqu’une lecture est lancée avec une telle clé on obtient le premier enregistrement logique qui a été implanté sur le disque lors de la constitution du fichier. Un procédé de chaînage permet du chainage pour cette clé.
Les diverses organisations des fichiers sont définies dans le programme dans 1’Environment Division. La description des fichiers et ses enregistrements est faite dans la Data Division
La création et la consultation des fichiers sont faites dans la Procédure Division.
Les choix de l’organisation et de 1’accès aux fichiers sont liés à leur utilisation. Ainsi par exemple:
-un fichier dont on traite toujours tous les enregistrements séquentiellement doit être à organisation séquentielle;
-un fichier dans lequel il faut faire de la mise ã jour, c’est-à-dire changer certains enregistrements logiques peut être organisé en séquentiel indexé;
– un fichier que 1’on veut seulement consulter peut être organise en accès direct.
Dans le choix d’une organisation le support doit aussi intervenir. Par exemple:
– la bande magnétique est plus aisée ã manipuler qu’une pile de disques, les cartes très aisées ã manipuler mais encombrantes.
En résumé, le support et l’utilisation du fichier conditionnent le choix de son organisation.
LES ORGANIGRAMMES
Un organigramme est la représentation schématique de 1’organisation logique et fonctionnelle d’un programme. Il est donc 1’image des différentes opérations logiques qui composent le programme.
Symboles pour organigrammes des données
SYMBOLES D’INFORMATION.
a.1. Symbole général “information”
a.2. Symboles particuliers “information” :
Document imprimé
Carte perforée Paquet de cartes perforées
SYMBOLES AUXILIAIRES
Symboles pour organigrammes de programmation
Préparation
SYMBOLES LOGIQUES
Débranchement(test)
SYMBOLES AUXILIAIRES
Renvoi
Début, fin, interruption
Commentaire
EXEMPLE:FACTURATION DES COMMUNICATIONS TELEPHONIQUES DES ABONNES D’UNE VILLE
A partir d’un annuaire téléphonique classique existant déjà, nous nous proposons de traiter sur ordinateur, la facturation des communications des abonnés d’une ville. Pour simplifier le problème nous considérons qu’un abonné ne possède qu’un seul numéro de téléphone. Bien en tendu, ce problème n’est présenté qu’ã titre d’exemple et ne représente pas la stricte réalité des faits.
Pour établir sur ordinateur cette facturation, plusieurs phases doivent être exécutées.
Constitution de fichiers
Trois fichiers sont nécessaires :
- deux fichiers d’entrée;
- un fichier de sortie.
FICHIERS D’ENTREE
Fichier principal.
ce fichier constitué par les informations tirées de.1’annuaire tête le numéro de téléphone de l’abonne.
Nous supposons que ce fichier est très volumineux et aussi 1’avons se transforme en un fichier ayant pour support une bande magnétique par un simple jeu de lecture de cartes et écriture sue bandage
Nous supposons aussi qu’avant son traitement sur ordinateur ce fichier bande a été mis à jour.
Le fichier principal qui va être pris en considération dans le programme a donc pour support une bande magnétique.
Fichier optionnel.
Ce fichier a pour support initial des cartes préférées. Chacune de ces cartes contient l’identité, le numéro de téléphone, le nombre d’unités ã facturer pendant la période considérée, le prix de 1’unité et le montant de 1’abonnement.
Ce fichier pouvant être très volumineux, nous le transformons comme précédemment en un fichier ayant pour support une bande magnétique.
s’il n’y a pas eu pour certains abonnés de communication dans cette période pour causes d’absence ou de dérangement, ces abonnés ne figurent pas sur le fichier optionnel.
fichier est composé des informations suivantes : identite,profession, adresse, numéro de téléphone de 1’abonné, montant de la taxe de 1’abonnement, montant des communications (compteur) et de l’imprimante.
Elaboration de l’organigramme.
Avant de résoudre ce problème sur ordinateur nous devons:
retrouver sur le fichier principal, 1’abonné considéré” dentiste et de numéro de téléphone).
Deux cas peuvent se rencontrer :
Nontant de la facture = Abonnement + Nombre de com-municationsprix unitaire |
Montant de la facture=Abonnement
(2)
processus logique de traitement est schématisé par les organigrammes ci-dessous.:
EXPLICATION DE L’ORGANIGRAME
(1) Début.
(2) Lecture d’un enregistrement logique du fichier optionnel (c’est-a-dire lecture d’une carte du fichier optionnel).
(3) Test de la fin du fichier optionnel. Si tel est le cas, exécution de (5), si non-exécution de (6).
(4) Mise a 1 d’un repère de fin de fichier optionnel appele FINGP.
(5) Lecture d’un enregistrement logique du fichier principal (c’est-a-dire lecture d’une carte du fichier principal).
(6) Test de la fin du fichier principal. Si tel est le cas, exécution de (8). Si non, exécution de (9). Pin du programmé(arrêt).
(8) Test sur 1’indicateur FINØP. Si FINØP – 1 exécution de (11), si non exécution de(10).
(9) Test sur 1’identité entre le nom et le prénom de 1’abon-né du fichier optionnel et de l’abonné du fichier principal. s’il y a identité exécution de (13), si non, exécution de (11).
(01) Calcul de la redevance à l’aide de la formule (2).
(11) Impression de la facture des abonnés qui n’ont pas téléphoné.
(12) Test sur 1’identité du n° de téléphone de 1’abonné du fichier optionnel et de 1’abonné du fichier principal. Ce test est nécessaire lorsque les abonnés ont même nom et prénom. S’il y a identité exécution de (14), si non, exécution de (11).
(13) Calcul de la redevance à l’aide de la formule (1).
(14) Impression de la facture pour les abonnés ayant téléphoné.