Vous êtes sur la page 1sur 9

INSTITUT POLYTECHNIQUE DE DAKAR

TD : LES FICHIERS

EXERCICE 1:

Ecrire un programme de création séquentielle d’un fichier comportant, pour un certain


nombre de personnes, les informations fournies au clavier
Nom (au maximum 20 caractère) ; Age ; Nombre d’enfants ;
Age de chacun des différents enfants ; on ne demander (et donc on n’enregistrera) que l’âge
des 15 premiers enfants (mais le nombre figurant dans le champ précédent pourra être
supérieur à 15).
L’utilisateur fournira un nom vide pour signifier qu’il n’a plus de personnes à enregistrer.
On ne prévoira aucun contrôle particulier au niveau de la saisie des données.

EXERCICE 2:

Réaliser un programme permettant d’afficher successivement chacun des enregistrements


d’un fichier analogue à ceux crées par le programme précédent. Le programme présentera un
seul enregistrement à la fois, accompagné d’un numéro précisant son rang dans le fichier (on
attribuera le numéro 1 u premier enregistrement ; il attendra que l’utilisateur frappe la touche
return avant de passer à l’enregistrement suivant.
L’affichage des informations sera réalisé par une fonction à laquelle on transmettra en
argument l’enregistrement à afficher et son numéro. Le modèle même de la structure
correspondante sera, quant à lui, défini à un niveau global.
Le programme devra s’assurer de l’existence du fichier à lister.

EXERCICE 3:

Réaliser un programme permettant d’effectuer des corrections sur un fichier analogue à ceux
créés par le programme de l’exercice précédent.
L’utilisateur désignera un enregistrement par son numéro d’ordre dans le fichier. Le
programme s’assurera de son existence et l’affichera d’abord tel quel avant de demander les
modifications à lui apporter. Ces dernières seront effectuées champ par champ. Le programme
en affichera à nouveau la valeur, puis il demandera à l’utilisateur d’enter une éventuelle
valeur de remplacement. Si aucune modification n’est effectuée, il suffira à ce dernier de
répondre directement par la frappe de return ;
On prévoira deux fonctions :
Une pour l’affichage d’un enregistrement (on pourra reprendre la fonction affiche de
l’exercice précédent) ;
Une pour la modification d’un enregistrement.

EXERCICE 4:

Ecrire un programme qui, à partir d’un fichier texte, détermine :


- Le nombre de caractère qu’il contient ;
- Le nombre de chacune des lettres de l’alphabet (on ne considéra que les minuscules) ;

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 1


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

- Le nombre de mots ;
- Le nombre de lignes.
Les fins de lignes ne devront pas être comptabilisées dans les caractères. On admettra que
deux mots sont toujours séparés par un ou plusieurs des caractères suivant :
- Fin de ligne
- Espace

- Ponctuations : :, ; ? !
- Guillemets : ‘’
- Apostrophe : ‘
On admettra également, pour simplifier, qu’aucun mot ne peut être commencé sur une ligne et
se poursuivre sur la suivante.
Il est conseillé de réaliser une fonction permettant de décider si un caractère donné, transmis
en argument, est un des séparateurs mentionnés ci-dessus. Elle restituer la valeur 1 lorsque le
caractère est un séparateur et la valeur 0 dans le cas contraire.

EXERCICE 5 :

Soit fic un fichier séquentiel dont chaque enregistrement est appelé ENREG.
Taf :
Ecrire l’algorithme INSER (FICH1, FICH2, N, ELT, VAL) qui a pour effet d’insérer la valeur
val après la nième occurrence supposée exister de l’élément ELT de FICH1. On appellera
FICH2 le fichier résultat.

EXERCICE 6:

Soit fich1 et fich2 deux fichiers séquentiels ordonnés dans le sens croissant.
Taf :
Ecrire l’algorithme fusion (fich1, fich2, val, fich) qui a pour effet de fusionner les fichiers
fich1 et fich2 ; fich désignera le fichier résultat.
Fich1 et fich2 sont ordonnés dans le sens croissant.
Remarque
Fich est un fichier séquentiel ordonnée dans le sens croissant et ne contiendra pas la valeur
VAL.

EXERCICE 7:

Soit CANDIDAT le fichier séquentiel des candidats au BTS informatique de gestion. Chaque
enregistrement réduit à la structure suivant :

NUMERO NOTE
NOM PRENOM ADR
CODETAB MATRI CODEMAT NOTMAT

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 2


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS


NUMERO désigne le numéro du candidat subdivisé en deux zones à savoir :

CODETAB désigne le code de l’établissement


MATRI le matricule de l’étudiant dans son établissement d’origine
NOM désigne le nom du candidat
Prénom désigne le prénom du candidat
ADR son adresse
NOTE désigne la zone subdivisée en deux zones à savoir :
CODMAT1 ET NOTMAT1 ou
CODMAT1 désigne le code correspondant à la 1er matière
NOTMAT1 désigne la note obtenue à la 1er matière
Ce fichier est séquentiel trié en :
Mineur sur la zone MATRI
Majeur sur la zone CODETAB
1. Soit TABETAB le fichier table des établissements dont chaque enregistrement
EENREG à la suivant :

ECODETAB ELIB

ECODETAB désigne le code de l’établissement, ELIB le libellé de l’établissement.

Exemple :

E05 ENSUT

Le code de l’établissement ENSUT est E05.

Remarque : pour les candidats libres la zone ELIB contient le libellé ‘’candidat libres’’. Ce
fichier est à accès direct, la clé d’accès étant ECODETAB.

2. Soit tabmat le fichier table des matières dont chaque enregistrement TENREG à la
structure suivante :
MCODMAT MCOEF


MCODMAT désigne le code matière, MCOEF le coefficient associé à la matière. Ce
fichier est à accès direct, la clé d’accès étant MCODMAT.
Remarque :
On supposera qu’il y a n matières pour chaque candidat.
TAF :
Ecrire l’algorithme EDITION (CANDIDAT, TABETAB, TABMAT, ETAT, N)

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 3


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

Qui a pour effet d’éditer l’état ci-dessous, IMP désignant le fichier imprimante dont
chaque enregistrement est appelé LIGNE.

PAGE : ED-PAGE
Liste des candidats

Etablissement : ED-ELIB

NUMERO NOM PRENOM ADRESSE


ED-NUM ED-NOM ED-PREN ED-ADR

Pourcentage des admis de l’établissement : ED-PE


Pourcentage des admis tous les établissements : ED-PG

Remarque :

Les zones ED-PAGE, ED-ELIB, ED-NUM etc… sont des zones de réception.
Exemple :

ED-ELIB doit contenir le libellé de l’établissement, il contiendra ‘’ candidats libres’’ s’il


s’agit de candidats libres’’
ED-NUM contiendra le numéro du candidat
ED-NOM : son nom
ED-PREN : son prénom
ED-ADR : son adresse
ED-PE : Pourcentage des admis de l’établissement
ED-PG : Pourcentage des admis tous les établissements
Seront dits admis, les étudiants ayant une moyenne générale supérieure ou égale à 10.
N’ayant aucune note éliminatoire dans les matières de CODEMAT1 et CODEMAT2, les
notes éliminatoire correspondantes étant NOT1 et NOT2, cela signifie qu’il faut pour ces
codes matières obtenir des notes au moins égales à NOTE1 et NOTE2

EXERCICE 8:

Soit fich un fichier séquentiel et val une valeur particulière supposée exister de ce fichier
TAF :
Ecrire l’algorithme ECLAT (FICH, FICH1, FICH2, VAL) qui a pour effet d’éclater le fichier
FICH en deux fichiers FICH1 et FICH2.
FICH2 contiendra les éléments de rang pair de FICH et FICH1 les autres.

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 4


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

Remarque : aucun des fichiers FICH1 et FICH2 ne contiendra la valeur particulière VAL
Exemple :
Fich= {12, 8, a, 15, g, a, 19, 32}
Val=a
Fich1= {12, g ,19}
Fich2= {8, 15, 32}

EXERCICE 9:

Soit élève un fichier séquentiel dont chaque enregistrement à la structure suivante :

MATRI NOM PREN ADR DATNAIS COEF MAT NOT

Taf :

Il vous est demandé d’écrire l’algorithme ECLAT (ELEVE, ELEV1, ELEV2, ELEV 3) que
permet d’éclater ce fichier en trois fichiers.

ELEV1 dont chaque enregistrement ENREG1 a la structure suivante :

MATRI1 NOM1 PREN1 ADR1 MOYENNE1

ELEV2 dont chaque enregistrement ENREG2 a la structure suivante :

MATRI2 NOM2 PREN2 ADR2 MOYENNE2

ELEV3 dont chaque enregistrement ENREG3 a la structure suivante :

MATRI3 NOM3 PREN3 ADR3 MOYENNE3

Remarque :

- ELEVE1 est le fichier des élèves ayant une moyenne>=10, un élève est concerné par
plusieurs notes et chaque élève dispose d’un numéro
- ELEVE2 est le fichier des élèves ayant une moyenne comprise entre 7 et 10
- ELEVE3 est le fichier des élèves âgés de 30 ans (l’année de référence est AA0)

Tous les fichiers sont triés sur le matricule

Il y a autant d’enregistrement que de matière par élève.

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 5


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

EXERCICE 10:

Soit fich le fichier des clients d’une banque de la place dont chaque enregistrement ENREG a
la structure suivant :

CODAGE NOCPTE NOM PREN ADR SOLDE SENS

Ou
CODAGE désigne le code de l’agence
NOCPTE le numéro du client
NOM son nom
Pren son prénom
ADR son adresse
Solde le solde de son compte
SENS =D si le client est débiteur
C s’il est créditeur
Ce fichier est séquentiel trié en mineur sur le numéro de compte
Majeur sur le numéro d’agence
Soit MVT le fichier mouvement dont chaque enregistrement réduit a la structure suivant :

MCODAGE MNCPTE MONT MSENS

Ou
MCODAGE désigne le code agence
MNCPTE désigne le numéro de compte du client
MONT le montant de l’opération effectuée par le client
MSENS : D si le client est débiteur
C s’il est créditeur
Ce fichier est séquentiel trié en mineur sur le numéro de compte
Majeur sur le numéro d’agence
Remarque : un client peut effectuer plusieurs mouvements

Soit table le fichier des agences dont chaque enregistrement TENREG a la structure suivante :

TCODAGE LIBAGE

Ce fichier est à accès direct, la clé d’accès étant le code agence TCODAGE.

Exemple :

T05 POINT E

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 6


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

Soit NFICLI la nouvelle situation des clients après leurs opérations, chaque enregistrement
NENREG a la structure suivante :

NCODAGE NNOCPTE NNOM NPREN NADR NSOLDE NSENS

Les rubriques sont les mêmes que FICLI (préfixées par N)


Par exemple NSOLDE désigne le nouveau solde
NSENS=D ou C
Il est ordonné trié en mineur sur NNOCPTE et en majeur sur NCODEAGE
TAF :

a) Ecrire un algorithme MAJ (FICLI, MVT, NFICLI) qui mer à jour le fichier FICLI, on
appellera NFICLI le fichier résultat.
b) Ecrire l’algorithme EDIT (NFICLI, TABLE, ETAT) qui permet d’éditer l’état
suivant :

PAGE : ED-PAGE
Liste des clients débiteurs

Agence : ED-LIBAGE

NUMERO COMPTE NOM PRENOM ADRESSE MONTANT DEBIT

ED-NCOMPT ED-NOM ED-PREN ED-ADR ED-MONT


………………………. …………………… ……………………… ………………… ………………

……………….TOTAL Agence : TOT-AG


……………….TOTAL Général : TOT-GEN

Remarque :

IMP désigne le fichier imprimante on appellera LIGNE le nom de l’enregistrement.

L1, L2, L3, L4, LD, L5, L6 sont appelées ligne d’édition, LD la ligne détail.

ED-PAG, ED-LIBAGE, etc… sont les zones d’édition (ED-LIBAGE reçoit le libellé de
l’agence)

On appellera CTP le compteur page,

CUMAGE le cumul débit par agence

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 7


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

CUMGEN le cumul débit total

On supposera que pour une agence donnée le nombre d clients débiteurs peut tenir sur une
page.

EXERCICE 11:

Soit FICLI le fichier des clients d’une banque de la place dont chaque enregistrement
ENREG à la structure suivante :

NOCPTE NOM PREN ADR ANSOLD SENS

Ou
NOCPTE : désigne le numéro de compte du client
Nom : désigne le nom du client
Pren : dsigne prénom du cleint
ADR : désigne l’adresse du cleint
ANSOLD : désigne l’ancien solde du client
SENS :
D : si le client est débiteur
C : si le client est créditeur
Remarque :
Seules les zones qui nous intéressent dans cet exercice sont mentionnées dans l’algorithme.
Soit MVT le fichier des Mouvement opérés par le client pendant la période de gestion ;
chacun de ses enregistrements MENREG a la structure suivant :

MNOCPTE DATOP LIBELLE MONT MSENS

OU
MNOCPTE : est le numéro de compte
DATOP : est la date à laquelle l’opération ayant occasionné le mouvement a été effectuée
LIBELLE : le libellé de l’opération
MONT : le montant de l’opération
MSENS :
D s’il s’agit d’une opération débitrice
C s’il s’agit d’une opération créditrice
Exemple :
37015036 27 11 97 VIREMENT 250 000 C

Il s’agit d’un virement de 250000 F le 27 novembre 1997 dans le compte numéro 37015036.
Appelons enfin NFICLI le nouveau fichier client dont chaque enregistrement NENREG a la
structure suivante :

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 8


INSTITUT POLYTECHNIQUE DE DAKAR
TD : LES FICHIERS

NNOCPTE NNOM NPREN NADR NOUSOLD NSENS

OU
NOUSOLD désigne le nouveau solde du client.
Remarque :
Les autres champs du fichier NFICLI correspondent à ceux de FICLI, ils sont simplement
préfixés par N.
Remarque
Tous ces fichiers sont triés dans le sens croissant sur le même argument, le numéro de
compte.

TAF :
Il s’agit d’écrire un algorithme MAJ qui met à jour le fichier FICLI compte tenu des
différentes opérations effectuées par les clients et contenues dans le fichier MVT.
Nous désignerons par NFICLI le nouveau fichier FICLI obtenu.
Chaque client correspond un et un seul mouvement.

FORMATEUR : RAYMOND EBONGA /nellebonga@yahoo.fr Page 9