La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Section XI Traitement de fichiers Algorithmes et résolution de problèmes 18279 FGE.

Présentations similaires


Présentation au sujet: "Section XI Traitement de fichiers Algorithmes et résolution de problèmes 18279 FGE."— Transcription de la présentation:

1 Section XI Traitement de fichiers Algorithmes et résolution de problèmes FGE

2 Contenu Introduction –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 Impression de rapport État de comptes –Plusieurs sous-systèmes peuvent partager des fichiers Introduction (suite) Un sous-système peut aussi avoir comme tâche de mettre à jour le contenu de 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 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 fichierCanal d'accès Mode d'accès 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) 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é) OUVRIR "DONNEES" SUR 4 EN LECTURE Mode d'accès

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 ÉCRITURE … FERMER 2 Notez qu'un canal d'accès peut être réutilisé après fermeture OUVRIR "DONNEES" SUR 2 EN LECTURE FERMER 2

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 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 Notez bien la négation : tant que la fin du contenu n'est pas atteinte

24 Lecture d'un fichier (suite) 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 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 1 Total = Total + Salaire

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 ÉCRITURE ÉCRIRE Nom, Numéro, Paie DANS 2 FERMER 2 OUVRIR "RESULTATS" SUR 2 EN LECTURE É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


Télécharger ppt "Section XI Traitement de fichiers Algorithmes et résolution de problèmes 18279 FGE."

Présentations similaires


Annonces Google