Vous êtes sur la page 1sur 2

Université Nazi BONI Licence première année semestre 2

École Supérieure d’Informatique Programmation et structures de données dynamiques

Travaux pratiques 5 Les listes chaînées linéaires : fonctions de gestion et types synonymes
 Définir un type synonyme
Objectifs
 Implémenter des fonctions génériques

1. Gestion d’une liste chaînée


 Réaliser un programmer qui permet la gestion d’une liste chaînée d’entier. Le programme utilise une
structure autoréférente contenant un champ de type entier et propose un menu pour faire appel aux
différentes fonctions permettant de :
 Créer la liste chaînée ;
 Insérer un élément en tête de liste ;
 Insérer un élément en fin de liste ;
 Insérer un élément en milieu de liste ;
 Afficher les éléments de la liste ;
 Supprimer la liste chaînée ;
2. Définition d’un type synonyme
 Utiliser typedef pour définir un type synonyme pour la structure autoréférente ;
 Utiliser le nouveau type pour rendre génériques les différentes fonctions de gestion de la liste.
3. Mise en œuvre des listes chaînées
 Créer une liste chaînée ordonnée de caractères. L’utilisateur saisie son nom, et le programme range les
différents caractères dans la liste en respectant l’ordre alphabétique. Utiliser les fonctions de gestion des
listes et redéfinir la fonction d’affichage utilisée pour la liste d’entier.
 Utiliser deux listes chaînées de réels pour stocker un nombre et son image par une fonction (exemple  :
f ( x )=cos x). L’utilisateur choisi un nombre et le programme l’insère dans la liste ordonnée. Le
programme calcule ensuite son image par la fonction et insère le résultat dans la seconde liste chaînée.
Utiliser un fichier pour stocker le nombre et son image par f. Chaque ligne correspond à une valeur de x et
une valeur de y séparées par un espace.
 Réaliser un programme qui permet de transférer des messages sous forme de paquets. Chaque paquet est
décrit par une structure qui contient :
o un champ adresse source qui est une valeur entière ;
o un champ adresse destination qui est une valeur entière ;
o un champ numéro de séquence qui est une valeur entière ;
o un champ donnée qui est une chaîne de dix caractères et qui contient le message à transmettre.
o Le message à transmettre est stocké dans un fichier.
o Pour transmettre un message, le programme doit le découper en petits segments de dix caractères
au plus. Chaque segment est numéroté. Ce numéro est le numéro de séquence du paquet.
o Le programme demande à l’utilisateur de saisir des informations, puis il crée et affiche les
paquets.
o Les paquets sont cryptés (TP206) et écrits dans un autre fichier.
 Réaliser un programme qui permet de créer, de consulter et de modifier le répertoire des étudiants de la
classe. Utiliser une structure Personne pour représenter un étudiant avec les champs suivants :

Type structure Personne Type structure Date


Champ Type Champ Type
matricule Entier jour Entier
dateNaissance structure Date mois Entier
villeNaissance Chaîne de caractères annee Entier
nom Chaîne de caractères

page 1-2
Université Nazi BONI Licence première année semestre 2
École Supérieure d’Informatique Programmation et structures de données dynamiques

contact Entier

 Le programme utilise un premier menu pour :


o créer un étudiant ;
o supprimer un étudiant ;
o modifier les informations sur un étudiant.
o Le second menu donne la possibilité de gérer la liste des étudiants :
o Afficher la liste des étudiants ;
o Trier par ordre (croissant ou décroissant) suivant un critère ;
o Afficher des éléments de la liste suivant un critère.
 Utiliser un fichier pour stocker les informations du programme.
 Utiliser une fonction pour fusionner deux répertoires et les stocker de manière ordonnée dans un
troisième fichier.

page 2-2