Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.

Slides:



Advertisements
Présentations similaires
Structures de données avancées : Principales structures de données
Advertisements

Cours de C – Séance dexercices 25 Septembre 2007.
Chap. 4 Recherche en Table
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Sensibilisation à l’Algorithmique et structure de données
PROGRAMMATION LOGICIEL PL7 MICRO Consignes
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Lecture et Ecriture.
Gestion de FICHIERS.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Chap. 1 Structures séquentielles : listes linéaires
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
A B D A B D LSC avec « sentinelle »
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Démarche de résolution de problèmes
II. Chaînage, SDD séquentielles
Analyse lexicale Généralités Expressions rationnelles Automates finis
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
II. Chaînage, SDD séquentielles
Définition d’un maillon de liste
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Structures de données IFT-2000
Etude de cas : buffer clavier
Traiter des Données avec la STL
FICHIERS : Définition : Algorithme général:
IFT-2000: Structures de données
Structures de données IFT-2000
Un langage de programmation hybride
Standard Template Library
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
IV. Arbres  Arbre binaire (AB) Représentation SDD d’un AB
Structures de données IFT-2000
Les fichiers texte en C++
Exemple de gestion d'un buffer clavier en liste circulaire
Le langage C Structures de données
1 Exemples Construction et implantation de types de données abstraits.
Chapitre IX Gestion de flux.
Labo II : Tableaux et pointeurs
II. Chaînage, SDD séquentielles
Un survol du language C.
Labo 4 : Les structures et les entrées et sorties
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
II. Chaînage, SDD séquentielles
ETNA – 1ème année Guillaume Belmas –
GF-11: Tri Interne Efficace et Tri Externe
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
1. Ook Christophe Delagarde, septembre 1999 I.U.T., Université de la Méditerrainée 2.
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Structures de données avancées : Principales structures de fichiers
Exercices.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Exercices sur les pointeurs. lireCar/remettreCar Lorsque l’on lit caractère par caractère, on ne peut pas savoir qu’on a atteint un caractère avant de.
Objets et Actions Élémentaires.
Chaînage et LSC : motivation et principe  Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Principes et variables
Seconde 8 Module 7 M. FELT 03/11/ Module 7: Algorithmique #2  Objectifs:  AlgoBox.  Définition d’un algorithme.  Affectation de variable. 
Les bascules et registres
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Cours de Langage C Les structures
II. Chaînage, SDD séquentielles
Transcription de la présentation:

Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier II. Chaînage, SDD séquentielles 1

Etude de cas : buffer clavier  Principe de fonctionnement  Lecture/écriture concurrentes l’utilisateur tape pendant que le système lit  Flux de données homogènes (suite de caractères saisis)  Zone tampon  Tampon basé sur le modèle du buffer tournant  Suite de postes limitée à une capacité maximale n  Principe de file : le dernier caractère entré est le dernier lu  Contraintes  Lecture : s’il n’y a rien à lire, ne rien lire  Ecriture : ne pas écraser une donnée non lue  La tête de lecture ne double pas la tête d’écriture SéquentielLSCEtude de casSpécification 2

Etat initial  Capacité n fixée : elle ne changera pas  Deux têtes (pointeurs) pour la lecture et l’écriture SéquentielLSCEtude de casSpécification 3

> copy a :.  Le buffer est alimenté  La tête d’écriture se déplace  La lecture n’a pas commencé SéquentielLSCEtude de casSpécification 4

> dir  La lecture de la commande précédente est en cours  L’écriture peut avancer sans attendre  Mais on arrive à la limite de capacité du buffer SéquentielLSCEtude de casSpécification 5

Objectif  Concevoir une structure et deux algorithmes  La structure pour implémenter le buffer  Un algorithme Lire  S’il y a une donnée à lire, lire  Puis déplacer la tête de lecture sur le poste suivant  Un algorithme Ecrire  S’il n’y a pas de risque d’écraser une donnée non lue, écrire  Puis déplacer la tête d’écriture sur le poste suivant SéquentielLSCEtude de casConception 6

Structure de donnée  Poste (l’élément)  Emplacement pour stocker une donnée  Indicateur d’état : la donnée est-elle « à lire » ?  Ensemble  Ordonné  Circulaire SéquentielLSCEtude de casConception 7

Implémentations  Statique  Tableau de postes  Tête de lecture et d’écriture sont des index  Mouvement circulaire : opérations modulo n  Dynamique  Structure chaînée  Tête de lecture et d’écriture sont des pointeurs  Mouvement circulaire : simple itération SéquentielLSCEtude de casConception 8

Définition du poste (statique) typedef struct poste { char info; int alire; } poste; En langage algorithmiqueExemple de traduction en C SéquentielLSCEtude de casRéalisation 9

Définition du buffer (statique) typedef struct buffer { poste donnee[n]; int lecture, ecriture; } buffer; En langage algorithmiqueExemple de traduction en C SéquentielLSCEtude de casRéalisation 10

Lire (statique) SéquentielLSCEtude de casRéalisation 11

Ecrire (statique) SéquentielLSCEtude de casRéalisation 12

Définition du poste (dynamique) typedef struct poste { char info; int alire; struct poste *suivant; } poste; En langage algorithmiqueExemple de traduction en C SéquentielLSCEtude de casRéalisation 13

Définition du buffer (dynamique) typedef poste *ptrposte; typedef struct buffer { ptrposte lecture, ecriture; } buffer; En langage algorithmiqueExemple de traduction en C SéquentielLSCEtude de casRéalisation 14

Lire (dynamique) SéquentielLSCEtude de casRéalisation 15

Ecrire (dynamique) SéquentielLSCEtude de casRéalisation 16