Télécharger la présentation
1
Section XI Traitement de fichiers
Algorithmes et résolution de problèmes 18279 FGE
2
Contenu Introduction Définitions Accès aux fichiers Exemples Devoir #9
Traitement interactif Traitement en batch Définitions Accès aux fichiers Ouverture / fermeture Lecture / écriture Exemples Devoir #9
3
Introduction Les algorithmes vus à date sont interactifs
Les données sont fournies directement par l'utilisateur Via le clavier Les résultats sont acheminés directement à l'utilisateur Via la console Les résultats produits par un algorithme ne sont pas réutilisés comme données par un autre algorithme
4
Introduction (suite) Un système informatique est composé de plusieurs sous-systèmes Exemple : un système de gestion est généralement composé au minimum des sous-systèmes suivants Paie Comptes recevables Contrôle d'inventaire Les sous-systèmes sont exécutés périodiquement (ex: à chaque mois)
5
Introduction (suite) Certains sous-systèmes requièrent des données des utilisateurs Exemple: entrée des feuilles de temps D'autres sous-systèmes utilisent comme données des résultats produits par des sous-systèmes Exemple: calcul de la paie Les résultats produits par un sous-système doivent être stockés afin d'être ultérieurement récupérés par un autre sous-système
6
Introduction (suite) Le flux d'exécution des sous-systèmes peut être représenté par un organigramme L'information transite d'un sous-système au suivant via des fichiers Calcul de paie Collecte de données Impression de chèques Collecte de données Fichier Impression de chèques Calcul de paie
7
Introduction (suite) Un sous-système peut aussi avoir comme tâche de mettre à jour le contenu de fichiers Impression de rapport État de comptes Plusieurs sous-systèmes peuvent partager des fichiers Gestion de comptes bancaires Anciennes données de comptes Nouvelles données de comptes Transactions bancaires
8
Introduction (suite) Le traitement différé de données stockées en fichiers est communément appelé le traitement en batch Les données sont récupérées en entrées de fichiers Les résultats sont stockés en sorties dans des fichiers Le traitement en batch peut tout-de-même requérir l'assistance de l'utilisateur Demander des informations de contrôle Afficher des informations de contrôle
9
Définitions Fichier Canal d'accès Accès séquentiel
Zone de stockage des données et/ou résultats. Un fichier contient généralement une séquence de dossiers Canal d'accès Identificateur de fichier permettant de diriger les entrées/sorties (i.e. lectures/écritures) vers un fichier spécifique Accès séquentiel Lecture séquentielle des dossiers d'un fichier. L'ordre de lecture des dossiers correspond à l'ordre d.apparition de ceux-ci dans le fichier
10
Accès aux fichiers Deux modes d'accès possibles
Accès séquentiel Le traitement en batch exploite couramment l'accès séquentiel Accès direct : accéder directement à un dossier selon sa position (i.e. son index) Les bases de données exploitent l'accès direct Dans le cours FGE, nous nous limitons à l'accès séquentiel Beaucoup plus simple
11
Accès aux fichiers (suite)
Gestion des fichiers Le système d'exploitation (SE) est responsable de la gestion des fichiers sur l'ordinateur Windows, Linux, XWindows, PalmOS, … Le système de fichiers est la composante du SE assurant la gestion des fichiers FAT32, NTFS, ext2, … Tout logiciel exploitant des fichiers doit transiger avec le SE afin d'accéder à ces fichiers
12
Ouverture de fichiers Afin d'accéder à un fichier, il faut premièrement ouvrir le fichier On doit demander au système d'exploitation (SE) l'autorisation d'accéder à un fichier Celui-ci s'assure que Le fichier existe (il peut le créer au besoin) Le fichier n'est pas présentement utilisé par un autre système Le SE verrouille alors le fichier afin d'en assurer l'accès exclusif
13
Ouverture de fichiers (suite)
Le verrouillage de fichier est basé sur les canaux d'accès Le fichier ouvert par le système d'exploitation est associé à un canal d'accès Les opérations de lecture et/ou d'écriture seront ultérieurement dirigées vers un fichier via son canal d'accès Dans un algorithme, un canal d'accès est identifié par un numéro
14
Ouverture de fichiers (suite)
Un fichier séquentiel peut être ouvert soit pour la lecture, soit pour l'écriture, mais pas les deux simultanément Exemple Ouverture du fichier DONNEES pour la lecture : OUVRIR "DONNEES" SUR 4 EN LECTURE Nom du fichier Canal d'accès Mode OUVRIR "DONNEES" SUR 4 EN LECTURE
15
Ouverture de fichiers (suite)
Un même canal d'accès ne doit pas être associé simultanément à deux fichiers La seconde opération de lecture sera refusée par le système d'exploitation Un algorithme dispose généralement de plusieurs canaux d'accès Dans LARP, les canaux 1 à 256 sont disponibles OUVRIR "DONNEES_1" SUR 3 EN LECTURE OUVRIR "DONNEES_2" SUR 3 EN LECTURE
16
Ouverture de fichiers (suite)
OUVRIR "DONNEES" SUR 4 EN LECTURE Mode d'accès Trois modes d'accès sont disponibles LECTURE : pour lire des données du fichier ÉCRITURE : pour écrire des résultats dans le fichier (le contenu d'un fichier existant est supplanté) AJOUT : pour écrire des résultats à la fin d'un fichier (le contenu d'un fichier existant est préservé)
17
Ouverture de fichiers (suite)
Autres exemples d'ouverture de fichiers Dès l'ouverture du fichier RESULTATS, son contenu existant est détruit Tous résultats écrits sur le canal d'accès #2 seront le seul contenu du fichier Le contenu existant du fichier ENREGISTREMENTS est conservé Tous résultats écrits sur le canal d'accès #6 est ajouté à la fin du contenu du fichier avant son ouverture OUVRIR "RESULTATS" SUR 2 EN ÉCRITURE OUVRIR "ENREGISTREMENTS" SUR 6 EN AJOUT
18
Fermeture de fichiers Tout fichier ouvert doit être éventuellement fermé Afin d'indiquer au système d'exploitation (SE) qu'il peut permettre à d'autres systèmes (i.e. logiciels) d'accéder au fichier Selon le SE, le contenu d'un fichier non fermé peut être irrémédiablement perdu Tout algorithme doit fermer les fichiers qu'il a ouvert avant de terminer son exécution
19
Fermeture de fichiers (suite)
Un fichier est fermé via son canal d'accès Un fichier peut être séquentiellement ouvert à de multiples reprises OUVRIR "DONNEES" SUR 2 EN LECTURE OUVRIR "RESULTATS" SUR 3 EN ÉCRITURE … FERMER 2 FERMER 3 OUVRIR "DONNEES" SUR 2 EN LECTURE FERMER 2 OUVRIR "DONNEES" SUR 2 EN LECTURE … FERMER 2 OUVRIR "DONNEES" SUR 2 EN ÉCRITURE Notez qu'un canal d'accès peut être réutilisé après fermeture
20
Lecture d'un fichier Une lecture d'un fichier se fait de la même façon qu'une lecture du clavier Il suffit d'indiquer via quel canal d'accès lire Une opération de lecture sur un canal d'accès associé à un fichier ouvert en mode d'écriture (ou d'ajout) est refusée Le système d'exploitation est responsable de valider les entrées/sorties à un fichier selon son mode d'accès OUVRIR "DONNEES" SUR 2 EN LECTURE LIRE Nom,Numéro, Salaire DE 2 FERMER 2 OUVRIR "DONNEES" SUR 2 EN LECTURE LIRE Nom, Numéro, Salaire DE 2 FERMER 2
21
Lecture d'un fichier (suite)
Exemple #1 : algorithme lisant le salaire des 12 employés de l'entreprise (à partir du fichier SALAIRE_EMPLOYES) et affichant la masse salariale DÉBUT \\ Accès aux données en mode lecture OUVRIR "SALAIRE_EMPLOYES" SUR 1 EN LECTURE \\ Additionner tous les salaires Total = 0 POUR NoEmp = 1 JUSQU'À 12 FAIRE LIRE Nom, Numéro, Salaire DE 1 Total = Total + Salaire FINPOUR \\ Afficher la masse salariale et fermer le fichier ÉCRIRE Total FERMER 1 FIN Démonstration avec LARP
22
Lecture d'un fichier (suite)
Dans l'exemple précédent, le fichier SALAIRE_EMPLOYES doit obligatoirement contenir 12 dossiers d'employés Généralement, on veut plutôt lire tous les dossiers du ficher, quel qu'en soit le nombre Pour interroger un canal d'accès afin de connaître si la fin d'un fichier est atteinte OUVRIR "DONNEES" SUR 2 EN LECTURE SI FINDECONTENU(2) ALORS ÉCRIRE "Fichier vide" FINSI FERMER 2
23
Lecture d'un fichier (suite)
Exemple #2 : exemple précédent révisé afin de fonctionner indépendamment du nombre de dossiers dans le fichier Notez bien la négation : tant que la fin du contenu n'est pas atteinte DÉBUT \\ Accès aux données en mode lecture OUVRIR "SALAIRE_EMPLOYES" SUR 1 EN LECTURE \\ Additionner tous les salaires Total = 0 TANTQUE NON FINDECONTENU(1) FAIRE LIRE Nom, Numéro, Salaire DE 1 Total = Total + Salaire FINTANTQUE \\ Afficher la masse salariale et fermer le fichier ÉCRIRE Total FERMER 1 FIN
24
Lecture d'un fichier (suite)
Oui Total = 0 Début Fin Fermer 1 Non Écrire Total Ouvrir "SALAIRE_EMPLOYES" sur 1 en Lecture NON FINDECONTENU(1)? Lire Nom,Numéro, Salaire de Total = Total + Salaire Exemple #2 (suite) : organigramme Remarquez que la boucle ne nécessite plus de compteur Attention aux embranchements Oui/Non dans la condition de la boucle
25
Écriture dans un fichier
Une écriture dans un fichier se fait de la même façon qu'une écriture à l'écran Il suffit d'indiquer via quel canal d'accès écrire Une opération d'écriture sur un canal d'accès associé à un fichier ouvert en mode lecture est refusée Le système d'exploitation est responsable de valider les entrées/sorties à un fichier selon son mode d'accès OUVRIR "RESULTATS" SUR 2 EN LECTURE ÉCRIRE Nom,Numéro, Paie DANS 2 FERMER 2 OUVRIR "RESULTATS" SUR 2 EN ÉCRITURE ÉCRIRE Nom, Numéro, Paie DANS 2 FERMER 2
26
Écriture dans un fichier (suite)
Exemple #3 : algorithme lisant les heures travaillées par les employés (à partir du fichier HEURES_TRAV) et écrivant un rapport de paie (dans le fichier RAP_PAIE) DÉBUT \\ Accès aux fichiers OUVRIR "HEURES_TRAV" SUR 1 EN LECTURE OUVRIR "RAP_PAIE" SUR 2 EN ÉCRITURE \\ Calculer la paie de chaque employé TANTQUE NON FINDECONTENU(1) FAIRE \\ Lire les données LIRE Nom, Numéro, Heures, Taux DE 1 \\ Calculer la paie de l'employé SI Heures > 40 ALORS Paie = 40 * Taux + (Heures – 40) * Taux * 1.5 SINON Paie = Heures * Taux FINSI \\ Écrire les donneés de paie ÉCRIRE Nom, Numéro, Paie DANS 2 FINTANTQUE \\ Fermer les fichiers FERMER 1 FERMER 2 FIN Démonstration avec LARP
27
Devoir #9 (le dernier!) Complétez le pseudo-code fourni avec le devoir
Algorithme de production de rapport de paie avec mise à jour des dossiers d'employés Énoncé du devoir et fichier LARP disponible sur WebCT, via l'outil Travaux Téléchargez la dernière version de LARP (compilation 010) À remettre au plus tard le 12 décembre 2003 via WebCT
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.