Contrôle continu LI 012

Devoir non surveillé n°1

Distribué le 16/03/01, Retour le 24/04/01

On veut réaliser un programme qui à partir d'un « dictionnaire » (fichier texte dont chaque ligne contient un mot), pas nécessairement trié, extrait les préfixes et les suffixes de longueur n fixée par l'utilisateur, et range ces affixes dans un autre fichier, dans l'ordre alphabétique.

On s'interdira d'utiliser les fonctions prédéfinies de manipulations de chaînes fournies par le langage, de même que les fonctions de tri.


Devoir non surveillé n°2

Distribué le 06/04/01, Retour le 01/06/01

On se propose de réaliser une ébauche de programme de traitement de texte.

Les textes seront stockés sous la forme d'une liste doublement chaînée de paragraphes, lesquels seront eux-mêmes gérés comme des listes (simplement) chaînées de chaînes de caractères (string).

Ces listes seront implémentées selon la technique du « curseur », et pour des raisons d'implémentation, on se limitera à des textes d'au plus 10 paragraphes d'au plus 100 mots chacun (chaque mot comprenant au plus 22 lettres).

  1. Définir et implémenter un ensemble cohérent de primitives permettant de manipuler une telle structure de données. On n'oubliera pas de prévoir la gestion des places libres.
  2. Réaliser un programme qui permette, avec cette structure, les opérations suivantes :
    1. Saisie (et donc remplissage correspondant) d'un texte par l'utilisateur.
    2. Affichage du texte en mémoire.
    3. Recherche d'un mot dans le texte (et affichage de sa position (1))
    4. Remplacement d'un mot (désigné par sa position (1)) par un autre
    5. Suppression d'un mot (désigné par sa position (1))

(1) Une position est composée d'un numéro de paragraphe et d'un numéro à l'intérieur du paragraphe.


N.B. : On demande un « vrai » programme, complet (structures de données, entrées/sorties...), plutôt sous la forme d'un listing (si vous l'avez testé, c'est mieux...).