Vous êtes sur la page 1sur 9

1

8 Utilisation des plusieurs fichiers en entrée

Position du problème

Aujourd‟hui, les systèmes informatiques sont battus autour d‟une


organisation des informations appelé base de données. Celle-ci est un
ensemble de tables ou fichiers ayant un lien logique et caractérisée
par :

- La structuration des données ;

- La non redondance des données

- Et l‟exhaustivité des données dans le système étudié.

Cet ensemble de fichiers intervient dans la résolution des problèmes


sur le plan de la programmation (algorithme et programme).

Lorsqu‟on utilise plusieurs fichiers en entrée dans algorithme ou


programme :

- comment analyser la structure de l‟algorithme ?

- Comment utiliser ces fichiers ?

- Quel sera l‟organisation des fichiers ?

Langage de programmation en face de la base de données

Les langages de programmation ont fortement résolu les problèmes


liées à la base de données dans le sens tous les mécanismes ont été
prévus.

Donc les langages de programmations prennent en charge l‟utilisation


des tous les fichiers à l‟aide des fonctions ou macroinstructions.

Mais avec quelle logique faut-il utiliser la suite des instructions dans
le programme?

Dans la suite de notre exposé nous répondrons à toutes ces questions


en s‟appuyant sur un exemple d‟illustration.

Principes à retenir dans la résolution du problème évoqué

1- Choisir parmi ces fichiers celui qui sera principal. Le fichier


principal c‟est celui qui contiendra les données de base pour le
travail demandé.
2

Les autres fichiers seront considérés pour fichiers


secondaires. Ils seront utilisés en consultation.

2- Le fichier principal dirigera les boucles ou les structures


répétitives de l‟algorithme

3- La fin sera déterminée par le fichier principal

4- Les fichiers secondaires seront accédés par la recherche des


données correspondantes à partir des clés. Cette recherche
peut être séquentielle ou dichotomique.

Illustration

Soient le fichier Agent et le fichier barème dont dispose une entreprise


permettant d‟imprimer l‟état de paie .
Structure du fichier Agent : Matr, Nom, Postnom, Sexe, Etciv, Grade,
dateeng, Datepromo, Fonct, nat, jour
Structure du fichier Barème: Grade, salaire de base, transport,
logement
NB. Les salaires et les transports sont calculés au prorata des jours
prestés.

• Une prime spéciale allouée aux hommes de l‟ordre de 10$


• L‟impôt est de 2% pour les agents dont l‟assiette imposable est
supérieure de 10$. L‟assiette est calculé en additionnant les
éléments ci- après : salaire, prime spéciale, retenues divers
égale à 1% calculé sur le salaire.
• La ligne détail comprend : le numéro d‟ordre, le matricule, le
nom, le postnom, le gain, le retenu et le net à payer.

Après le traitement du dernier enregistrement, imprimer le total de


gain, de retenue et de net à payer.

Solution

1. Enoncé

Entrée :- FIAGENT Matr, Nom, Postnom, Sexe, Etciv,


Grade,dateeng, Datepromo, Fonct,N nat, jour

- Fibarem Grade, salaire de base, transport


3

Sortie : LISPAIE Num, Matr, Nom, Postn, Gains, Retenues, Net à


payer

Traitement :
- No ← No +1
- Gains ← Salaire + prime + transp
- Salaire ← Base * jour/26
- Transp ← transp * jour/26 - Prime : Homme ← 10
Femme ← 0 -
Retenue :
- Impot ← Base impôt * 2/100
- Retenuedivers ← salaire * 1/100 -Baseimpôt ← salaire + prime
-Retenue ← Impot + Retenue div.
- Net à payer ← Gain + Retenue
- Totgain ← Totgain + Gains
- Totretenu ← Totretenu + Retenu
- Totnet ← Totnet + net

2.Format d‟E/S

a) Sortie : LISPAIE

ISC-KIN Page : 1
Kinshasa/Gombe

Listing de paie
Mois de ……………

Num. Mat. Nom Postnom Gains Ret Net

Total ***

b) Entrée : FIAGENT
4

p.m (pour mémoire)

3. Identification du modèle d‟algorithme

a) Analyse des fichiers de Sortie : LISPAIE

Niveau 1 : Liste agent Niveau 2 : Agent


Num (1f)
GLE (1f) Matr (1f)
Agent (Plf) Nom (1f)
Ligne Total(1f) Postnom (1f)
Gains (1f)
Ret (1f)
Net (1f)

b)Analyse des fichiers d‟Entrée :

a)FIAGENT

Niveau 1 : Fiagent Niveau 2 : Agent

Matr (1f)
Agent (Plf) Nom (1f)
Postnom (1f)
Etciv (1f)
Grade (1f)
Dateeng (1f)
Datepromo (1f)
Fonct (1f)
Nat (1f)
Jour (1f)
5

b)FIbarem

Niveau 1 : FBarem Niveau 2 : grade

Grade (1f)
Grade (Plf) Base (1f)
Transport (1f)
Logement (1f)

c) Traitement

Niveau 1 : Algorithme

SD Algo (1f)
STR Agent (Plf)
SF Algo (1f)

d) Organigramme de séquence logique (OSL)

SD Algo

STR Agent

Non
D
Agent

Oui

SF Algo

4. Algorithme

//Début
6

Variable : Tbase(), TTransp(),Tloge() :tableau


Variable : salaire, Transp, Retenue, Impôt, Base :simple
Impot : double
RetDiv : Double
No,K,I : Entier
Trouve : logique
Totgains, TotRetenue, Totmat : Double
Totgains, Totretenue, Totnet <- 0
Salaire, Transp, Impôt, Base, RetDiv <-0
No,gauche,droite,milieu ← 0
//Chargement des tableaux
K←0
Ouvrir Fbarem
Lire fbarem
Répéter jusqu‟à fin fibarem
K= K +1
TGrade(K) ← grade
Tbase(K) ← base
Ttransp(K) ←transport
Tloge(T) ←logement
Lire fibarem
FinRepeter
Fermer fbarem
Ouvrir FIAGENT
Ctrligne ← 35
Ctrpage ← 0
Lire FIAGENT
Si fin fichier alors
Fermer FIAGENT // Donc le fichier est vide
Fin
Finsi
// Traitement
Répéter jusqu‟à fin fichier
// Recherche des données dans les tableaux à partir de
Grade lu
Gauche ← 1
7

Droite ← K-1
I←1
Cont trouve← faux
//Début recherche dichotomique
Tantque Gauche < droite et trouve = Faux faire
Milieu ← (gauche + droite) / 2
Si Tgrade(Milieu) ← grade alors
Trouve ← Vrai
Exit faire
Sinon
Si grade < Tgrade (Milieu) alors
droite ← Milieu - 1
sinon
Gauche ← Milieu + 1
Finsi
Finsi
FinTantque
//Fin Recherche
Si trouve = vrai alors
No← N +1
Salaire ← TBase(I) * Jourpreste /26
Transp ← TTransp() * Jourpreste/26
Si sexe = ‘H’ alors
Prime ←10
Sinon
Prime ← 0
Finsi
Baseimpôt ← Salaire + Prime
Si baseimpôt > 100 alors
Impôt ← Base impôt * 2/100
Sinon
Impôt ← 0
Finsi
Retdiv ← Salaire *1/100
Gains ← Salaire + Transp + Prime+Tloge(I)
Retenue ← Impôt + Retdiv
8

Net ← Gains – Retenue


TotGain ← TotGain + Gains
TotRetenue ← TotRetenue + Retenue
TotNet ← TotNet + Net
Si ctrligne = 35 alors
Si ctrpage <> 0 alors
Ecrire ‘-----------------------------------’
Saut-de-page
Finsi
Ctrpage ← Ctrpag + 1
Ecrire ‘MCS’ ; ‘ ‘ ;Page :’ ;ctrpage
Ecrire ‘ETAT DE PAIE’
Ecrire ‘------------------------------------------’
Ecrire ‘Num’;Matricule;’Nom’;’Postnom’;’Gains’ ; ‘Ret’ ;
‘Net’
Ecrire ‘----------------------------------------’
Ctrligne ← 0
Finsi
Ecrire No, Nom, Postnom, Gains, Retenue, Net
Ctrligne ← Ctrligne + 1
Lire FIAGENT
FinRépéter
// SF Algo
Ecrire ‘-----------------------------------------------------’
Ecrire ‘Tot Gain’ ; TotGain
Ecrire ‘Tot Retenue’ ; TotRet
Ecrire ‘Tot Net’ ; TotNet
Ecrire ‘-----------------------------------------------------’
Fermer FIAGENT
Fin

Observations :

- La résolution de ce problème utilise deux fichiers ouverts en


entrée
9

- Les deux fichiers sont en rélation à partir de la rubrique


contenant dans le deux fichiers

- Le fichier agent est retenu comme fichier principal et fichier


barème comme sécondaire ;

- Le fichier fbarem est utilisé comme tableau dont les données


sont chargées en mémoire ;

- Le lien entre les données du fichier agent et le tableau contenant


les données de barème est établi par la recherche ;

- Dans cet algorithme, nous avons utilisé la recherche


dichotomique ;

- Lorsque le grade du fichier agent correspondant au grade du


tableau, alors intervient le traitement proprement dit sinon on
passe à l’enregistrement suivant;

- Avant d’écrire un agent sur papier, on enclenche le saut de page

Vous aimerez peut-être aussi