UNIVERSITE DE CARTHAGE
FACULTE DES SCIENCES DE BIZERTE
DEPARTEMENT
INFORMATIQUE
Classe : SI2
Matière : TP-POO
A-U : 13/14
TP5: Les Tableaux et les chaînes de caractères
Exercice 1:
On veut définir une classe représentant un tableau trié (ordre croissant) d’entiers.
La classe appelée TableauTrie aura un attribut privé qui sera un tableau d’entiers.
1)- Prévoir un constructeur qui admet comme paramètre la dimension du tableau à louer.
2)- Les méthodes suivantes sont également prévues dans cette classe :
void inserer (int entier) : insère un entier dans le tableau en respectant un ordre croissant sur les entiers.
int rechercher (int entier) : recherche un entier dans le tableau, retourne son indice s’il est trouvé et -1
sinon.
void retirer (int entier) : retire un entier donné, si un tel entier est dans le tableau, sinon un message sera
affiché à l’écran. Si l’entier figure plusieurs fois, une seule occurrence est retirée.
Publicité
void affiche() : affiche le contenu du tableau avec le message suivant au départ : « Ceci est un nouveau
affichage ».
3)- Ecrire la classe TestTableauTrie qui contient la méthode main permettant de tester la classe
TableauTrie. Elle contient les instructions suivantes :
Création d’un tableau de taille 10
Insertion des valeurs 1 3 et 4 dans le tableau
Affichage du tableau
Insertion de la valeur 0 dans le tableau
Affichage du tableau
Insertion de la valeur 1 dans le tableau
Affichage du tableau
Retirer la valeur 2 du tableau
Affichage du tableau
Retirer la valeur 1 du tableau
Affichage du tableau.
Exercice 2 :
On se propose de définir la classe Decouper dont le rôle est de découper un texte en mots en considérant
un ensemble de caractères délimiteurs tels que le blanc, le point, la virgule, etc..
Publicité
Voici un exemple d’utilisation de cette classe :
//la chaîne à découper est : « Ceci.est.un.test », le délimiteur est le point.
Decouper d=new Decouper("Ceci.est.un.test",".");
while(d.ilResteDesMots())
System.out.println(d.motSuivant());
On obtient sur écran :
Ceci
est
un
test
1
On vous demande de compléter la squelette de cette classe présentée ci-dessus :
class Decouper
{
//Attributs
private String str; //chaîne à découper
private String sep; //chaîne des séparateurs
private int istr; //indice d'avancement dans str
Publicité
//Constructeur
Decouper(String str, String sep)
{
//…
}
/méthode motSuivant: retourne le mot suivant dans str et avance dans str/
String motSuivant()
{
//…
}
/*méthode ilResteDesMots: détermine si str contient encore des mots à
traiter*/
boolean ilResteDesMots()
{
//…
}
}
class TestDecouper
Publicité
{
public static void main(String []args)
{
Decouper d=new Decouper("Ceci.est.un.test",".");
while(d.ilResteDesMots())
System.out.println(d.motSuivant());
}
}
Indication:
int indexOf(char c): méthode de la classe String, renvoi la position de la première occurrence du
caractère c dans l’objet chaîne de caractères ou -1 si le caractère n’appartient pas à cette chaîne.
char charAt(int i) : retourne le caractère qui se trouve à la position i dans la chaîne courante.
2