TD4 Exercice
Code de démarrage
Exercice 1 : Longueur des mots
Le but est de concevoir un programme capable de déterminer la longueur de mot la plus fréquente dans un fichier. Pour ce faire, il faut compter le nombre de mots de chaque longueur présente dans le fichier. Les mots de 30 caractères ou plus doivent être regroupés. Les signes de ponctuation situés au début ou à la fin des mots doivent être ignorés dans le calcul de la longueur.
Instructions
-
Créer une classe
Définissez une classe nomméeWordLengths. -
Méthode
countWordLengths
Implémentez une méthodevoid countWordLengthsacceptant deux paramètres :- un objet
FileResourcenomméresource, - un tableau d'entiers
counts.
La méthode doit :
- Parcourir tous les mots du fichier fourni par
resource. - Compter le nombre de mots pour chaque longueur et enregistrer ces valeurs dans le tableau
counts. - Si un mot commence ou se termine par un caractère non alphabétique, ce caractère ne doit pas être pris en compte dans la longueur.
- Les mots de longueur 30 ou plus doivent être comptabilisés dans la dernière case du tableau
counts. - Utilisez
Character.isLetterpour déterminer si un caractère est une lettre.
- un objet
-
Méthode
testCountWordLengths
Créez une méthodevoid testCountWordLengthspour tester la méthode précédente. Elle doit :- Permettre de sélectionner un fichier via un objet
FileResource. - Initialiser un tableau
countsd’entiers de taille 31. - Appeler
countWordLengthsavec le fichier sélectionné et le tableaucounts. - Afficher les résultats, c'est-à-dire le nombre de mots pour chaque longueur.
- Permettre de sélectionner un fichier via un objet
-
Méthode
indexOfMax
Implémentez une méthodeint indexOfMaxpour retourner l’index correspondant à la longueur de mot la plus fréquente dans le tableaucounts.
Exercice 2 : Mots dans les fichiers
Écrivez un programme pour déterminer quels mots figurent dans le plus grand nombre de fichiers et, pour chaque mot, dans quels fichiers ils apparaissent.
Instructions
-
Créer une classe : Créez une nouvelle classe appelée
WordsInFiles. -
Variable
myMap: Déclarez une variable privéemyMapde typeHashMap<String, ArrayList<String>>pour stocker le mappage des mots aux noms de fichiers. -
Méthode
addWordsFromFile: Écrivez une méthodeprivate void addWordsFromFile(File f)pour ajouter tous les mots defdansmyMap. -
Méthode
buildWordFileMap: Écrivez une méthodevoid buildWordFileMap()qui effacemyMap, puis utiliseDirectoryResourcepour sélectionner un groupe de fichiers. -
Méthode
maxNumber: Écrivez la méthodemaxNumber()pour renvoyer le nombre maximal de fichiers dans lesquels chaque mot apparaît. -
Méthode
wordsInNumFiles: Écrivez une méthodewordsInNumFiles(int number)qui retourne uneArrayListde mots apparaissant dans exactementnumberfichiers. -
Méthode
printFilesIn: Écrivez une méthodevoid printFilesIn(String word)pour afficher les noms des fichiers dans lesquelswordapparaît. -
Méthode
tester: Écrivez une méthodevoid tester()qui appellebuildWordFileMappour sélectionner un groupe de fichiers et créermyMap.