Interrogation de COBOL 1ère année

IUT d'Orsay
Année 1995-96

Tous les documents sont autorisés.

1. Complétez les ________ dans les programmes suivants:

Un mot à chaque fois.
ENVIRONMENT DIVISION.
FILE-CONTROL.
    SELECT F ASSIGN TO DISK
	ORGANIZATION ________
	_________ KEY K
	FILE STATUS FS.

DATA DIVISION.
FILE SECTION.

FD F DATA RECORD R.

01 R.
    10 K    PIC X(4).
    10 L    PIC 9(10).
DATA DIVISION.
WORKING-STORAGE SECTION.

77 IND-MAX	PIC 9999.
77 NNI		PIC X(15).
77 NOM-ENTREE	PIC X(15).
     
01 TABLE.
    02 SALARIE ______ 2 TO 1000
	DEPENDING ON IND-MAX
	INDEXED BY IND
	ASCENDING KEY INSEE.
	10 INSEE	PIC X(15).
	10 NOM		PIC X(15).
	10 PRENOM	PIC X(15).
	10 ADRESSE	PIC X(15).

PROCEDURE DIVISION.
    PERFORM CHARGEMENT-TABLE.
    DISPLAY "ENTREZ LE NOM:"
    ACCEPT NOM-ENTREE.
    ______ IND TO 1.
    SEARCH SALARIE
	AT END DISPLAY
	     "SALARIE INCONNU"
	WHEN NOM ( IND ) = NNI
	    DISPLAY NOM PRENOM.
    STOP RUN.

2. Questions VRAI / FAUX

  1. Dans un tri COBOL, si l'entrée est un fichier, la sortie est forcément un fichier.
  2. Dans un fichier indexé, les clés secondaires peuvent apparaître en double.
  3. Lors de l'appel d'un sous-programme externe en COBOL, les données passées au programme appelé ne peuvent être passées que par valeur (CONTENT).
  4. Lors de l'appel d'un sous-programme externe en COBOL, les données renvoyées au programme appelant sont toujours passées par valeur (CONTENT).
  5. Par défaut, les données passées lors de l'appel à un sous-programme externe le sont par REFERENCE.
  6. Au cours d'une recherche séquentielle dans une table triée, c'est l'élément de plus petit index satisfaisant la condition de recherche qui est trouvé le premier.
  7. Au cours d'une recherche dichotomique dans une table triée, c'est l'élément de plus petit index satisfaisant la condition de recherche qui est trouvé le premier.
  8. Si on lance une recherche dichotomique dans une table non triée, c'est en fait une recherche séquentielle qui est effectuée.
  9. Après une recherche dichotomique, l'index pointe l'élément suivant l'élément trouvé pour permettre de poursuivre la recherche.
  10. Après une recherche sequentielle, l'index pointe l'élément suivant l'élément trouvé pour permettre de poursuivre la recherche.

3. Questions vaches

  1. Quels est le nombre maximal d'éléments dans une table COBOL ?
  2. Dans un fichier relatif, les clés secondaires peuvent apparaître en double (VRAI/FAUX). Expliquez (1 phrase).
  3. Quel est le nombre minimal de fichiers mis en oeuvre dans un tri en COBOL ?
  4. Quel est le nombre maximal de fichiers mis en oeuvre dans un tri en COBOL ?
  5. Lorsqu'on a une recherche séquentielle dans une table, il est toujours possible de trier la table et de faire la même recherche en dichotomique (VRAI/FAUX). Expliquez (1 phrase).
  6. Après une insertion réussie dans un fichier indexé, le FILE STATUS est toujours "00" (VRAI/FAUX). Expliquez (1 phrase).

4. Programmes

On a le fichier séquentiel standard ayant la structure suivante:
Code Client Raison sociale Adresse Code Postal Ville
7 24 24 5 24
Les codes clients commencent à 1 sont numériques et se suivent, mais le fichier séquentiel standard n'est pas trié.

Question 1

Proposez une structure de données (DATA DIVISION) pour la représentation de ce fichier sous forme de fichier relatif. Le fichier relatif devra permettre d'accéder rapidement à un enregistrement étant donné un code client. Expliquez votre choix en une phrase. [ 2 points ]

Question 2

Ecrivez le programme qui à partir du fichier séquentiel standard crée le fichier relatif ayant la structure que vous avez choisie à la question 1. Vous devez écrire le programme complet (ENVIRONMENT DIVISION, DATA DIVISION et PROCEDURE DIVISION). [ 4 points ] Indication: il est peut-être nécessaire de trier.

Question 3

Ecrivez le programme qui, utilisant votre fichier relatif, lit au clavier un numéro de code client et imprime les autres renseignements. Vous devez écrire le programme complet (ENVIRONMENT DIVISION, DATA DIVISION et PROCEDURE DIVISION). [ 4 points ]

Vous vous efforcerez d'écrire lisiblement.


Christophe Tronche, ch@tronche.com