UNIVERSITE DE CARTHAGE - TP5: Les Tableaux et les chaînes de caractères

Ce TP de POO en Java couvre deux exercices pratiques : l'implémentation d'un tableau trié d'entiers avec gestion des insertions et suppressions, et la création d'une classe de découpage de chaînes de caractères en mots à l'aide de délimiteurs.

D'après le document UNIVERSITE DE CARTHAGE - TP5: Les Tableaux et les chaînes de caractères

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

UNIVERSITE DE CARTHAGE - TP5: Les Tableaux et les chaînes de caractères

Document source

UNIVERSITE DE CARTHAGE - TP5: Les Tableaux et les chaînes de caractères

Object-Oriented Programming (OOP) · Faculté des Sciences de Bizerte · PDF · 2 pages

Afficher l'aperçu du document

Consulter le document original →

Ce TP porte sur la manipulation des tableaux triés d’entiers et le découpage de chaînes de caractères en mots selon des délimiteurs. Il permet d’apprendre à gérer des structures de données dynamiques, à implémenter des méthodes de recherche, d’insertion et de suppression dans un tableau trié, ainsi qu’à traiter des chaînes en extrayant des mots. Pour réaliser ce TP, il est nécessaire de maîtriser la programmation orientée objet en Java et de disposer d’un environnement de développement Java fonctionnel.

Objectifs

  • Définir une classe représentant un tableau trié d’entiers avec insertion, recherche, suppression et affichage.
  • Implémenter une classe permettant de découper une chaîne de caractères en mots selon des délimiteurs.
  • Tester les classes créées à travers des programmes Java simples.

Prérequis et installation

  • Connaissances en Java, notamment les classes, méthodes, tableaux et chaînes de caractères.
  • Environnement Java configuré (JDK et IDE ou compilateur en ligne de commande).
  • Compréhension des notions de tableau trié et des opérations de base sur les chaînes.

Exercice 1 : Classe TableauTrie

Cet exercice demande de créer une classe TableauTrie qui gère un tableau d’entiers trié en ordre croissant. Cette classe doit posséder un attribut privé tableau d’entiers, un constructeur pour allouer ce tableau selon une dimension donnée, et plusieurs méthodes pour insérer, rechercher, retirer et afficher des éléments.

Étapes à suivre

  1. Définir l’attribut privé tableau d’entiers.
  2. Créer un constructeur qui prend en paramètre la taille du tableau à allouer.
  3. Implémenter la méthode void inserer(int entier) qui insère un entier dans le tableau tout en maintenant l’ordre croissant.
  4. Implémenter la méthode int rechercher(int entier) qui retourne l’indice de l’entier s’il est trouvé, sinon -1.
  5. Implémenter la méthode void retirer(int entier) qui supprime une occurrence de l’entier donné, ou affiche un message si l’entier n’est pas présent.
  6. Implémenter la méthode void affiche() qui affiche le contenu du tableau précédé du message « Ceci est un nouveau affichage ».
  7. Écrire la classe TestTableauTrie avec une méthode main qui teste les fonctionnalités en suivant la séquence donnée :
    • Création d’un tableau de taille 10.
    • Insertion des valeurs 1, 3 et 4.
    • Affichage du tableau.
    • Insertion de la valeur 0.
    • Affichage du tableau.
    • Insertion de la valeur 1.
    • Affichage du tableau.
    • Retrait de la valeur 2 (non présente).
    • Affichage du tableau.
    • Retrait de la valeur 1.
    • Affichage du tableau.

Un résultat correct montre que le tableau reste trié après chaque insertion, que la recherche retourne les bons indices, que le retrait supprime une seule occurrence et affiche un message en cas d’absence, et que l’affichage commence toujours par le message précisé.

Exercice 2 : Classe Decouper

Ce second exercice consiste à compléter une classe Decouper qui découpe une chaîne de caractères en mots, en utilisant un ensemble de caractères délimiteurs (séparateurs) comme le blanc, le point, la virgule, etc.

Étapes à suivre

  1. Compléter le constructeur Decouper(String str, String sep) pour initialiser les attributs :
    • str : la chaîne à découper.
    • sep : la chaîne des caractères séparateurs.
    • istr : l’indice de position dans la chaîne, initialisé à 0.
  2. Implémenter la méthode String motSuivant() qui retourne le mot suivant dans la chaîne str en ignorant les délimiteurs, et avance l’indice istr pour la prochaine extraction.
  3. Implémenter la méthode boolean ilResteDesMots() qui indique s’il reste encore des mots à extraire dans la chaîne.
  4. Tester la classe dans la classe TestDecouper avec la chaîne "Ceci.est.un.test" et le délimiteur ".", en affichant chaque mot extrait.

Les méthodes doivent utiliser les fonctions indexOf(char c) et charAt(int i) de la classe String pour détecter les délimiteurs et extraire les mots.

Résultats attendus

Les résultats d'exécution doivent valider le comportement correct des deux classes demandées.

  • Pour TableauTrie, les affichages successifs doivent montrer un tableau trié avec les valeurs insérées, la suppression d’une occurrence d’un entier, et un message d’erreur si on tente de retirer un entier absent.
  • Pour Decouper, l’extraction des mots doit afficher successivement :
    • Ceci
    • est
    • un
    • test

Pièges courants

Plusieurs erreurs classiques doivent être évitées lors de l'implémentation de ces exercices :

  • Dans TableauTrie, ne pas maintenir l’ordre croissant après insertion ou suppression.
  • Oublier de gérer le cas où le tableau est plein lors d’une insertion.
  • Dans la méthode de suppression, retirer toutes les occurrences au lieu d’une seule.
  • Dans Decouper, ne pas avancer correctement l’indice istr après extraction d’un mot, ce qui peut entraîner une boucle infinie.
  • Ne pas gérer correctement les délimiteurs consécutifs ou en début/fin de chaîne.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions