T1.programmation : Sujet du TP supp. T1.programmation : Sujet du TP3
Groupe ESIEE, Denis BUREAU, février 2001.
Attention ! Le sujet peut être modifié jusqu'à la veille du TP.

1  Les objectifs

Être capable de réaliser sur machine des programmes mettant en oeuvre les notions vues au TD supp.

2  Fichiers et répertoires

3  Programme principal

Écrire en C++ un programme principal qui déclare une liste puis, tant que l'utilisateur ne tape pas Q pour sortir, saisit une commande sur un caractère et appelle le sous-programme correspondant (après avoir saisi la valeur de l'élément si nécessaire). Suggestion de liste de commandes :

4  Rappel des déclarations

  1. le type TypElement (par exemple, équivalent à double)
  2. le type TypMaillon (contenant notamment un TypElement)
  3. le type TypPtrMaillon
  4. le type TypListe

5  Traitements de base

Écrire en C++ les sous-programmes suivants :

    0. 
 
CreeMaillon : crée un maillon et le remplit avec ses deux paramètres element et ptrMaillon, puis retourne son adresse. Cette fonction devra être utilisée dans la suite à chaque fois qu'il est nécessaire de créer un maillon.

  1. InitVide : initialise son paramètre liste à NULL .
  2. EstVide : retourne VRAI si son paramètre liste est vide, et FAUX sinon. Cette fonction est appelée à servir souvent dans les sous-programmes suivants.
  3. AjoutDebut : ajoute au début de son paramètre liste un maillon contenant son paramètre element.
  4. EnleveDebut : enlève et détruit le premier maillon de son paramètre liste.
  5. Longueur : retourne le nombre de maillons de son paramètre liste.
  6. AfficheListe : affiche l'intégralité de son paramètre liste suivant le format :
    [0.12|-]->[34.567|-]->/// .
  7. DetruitListe : détruit l'intégralité de son paramètre liste qui devient alors vide.
  8. Contient : retourne VRAI si son paramètre element figure dans au moins un des maillons de son paramètre liste, et FAUX sinon.
  9. ContientPtr : si son paramètre element est trouvé dans au moins un des maillons de son paramètre liste, retourne l'adresse de ce maillon, sinon retourne NULL.
  10. Compte : retourne le nombre de fois qu'apparaît son paramètre element dans son paramètre liste.

Tester cette première partie de programme en utilisant tous les sous-programmes précédents et en pensant à tous les cas particuliers.

6  Autres traitements

Écrire en C++ les sous-programmes suivants : (ne pas oublier tous les cas particuliers)
  1. AjoutFin : ajoute un maillon contenant son paramètre element à la fin de son paramètre liste.
  2. EnleveFin : enlève et détruit le dernier maillon de son paramètre liste.
  3. EnleveElement : enlève et détruit le premier maillon de son paramètre liste qui contient son paramètre element.
  4. EnleveTous : enlève et détruit dans son paramètre liste tous les maillons qui contiennent son paramètre element.
  5. Inverse : modifie son paramètre liste de telle sorte que les maillons soient dans l'ordre inverse Une version naïve peut utiliser des sous-programmes précédemment écrits pour créer et détruire des maillons. Mais la bonne version ne doit créer ni détruire aucun maillon.
  6. CreeListe : crée une liste numérique d'après les paramètres suivants : Rappel : il est plus difficile d'insérer à la fin qu'au début ...
  7. etc... (la suite est laissée à votre imagination)

Tester extensivement le programme en utilisant tous les sous-programmes et en pensant à tous les cas particuliers.


File translated from TEX by TTH, version 2.75.
On 2 Feb 2001, 16:29.