Module: AP Informatique Section II 2015


Problem

3/4

cordes

Problem

Un programme d'édition de texte utilise une classe Sentence qui manipule une seule phrase. Une phrase contient des lettres, des blancs et des signes de ponctuation. Le premier caractère d'une phrase est une lettre et le dernier caractère est un signe de ponctuation. Deux mots dans la phrase sont séparés par un seul blanc. Une implémentation partielle de la classe Sentence est la suivante.

a) Écrivez la méthode Sentence getBlankPositions, qui renvoie une ArrayList d'entiers qui représentent les positions dans une phrase contenant des blancs. S'il n'y a pas d'espaces dans la phrase, getBlankPositions doit renvoyer une liste vide. Certains résultats de l'appel de getBlankPositions sont présentés ci-dessous.


Complétez la méthode getBlankPositions ci-dessous.
/** @return une ArrayList de positions entières contenant un 
* vide dans cette phrase. S'il n'y a pas d'espaces dans le
* phrase, renvoie une liste vide.
*/
Liste publique<Integer> getBlankPositions()
 
b) Écrivez la méthode de phrase countWords, qui renvoie le nombre de mots d'une phrase. Les mots sont des séquences de lettres ou de signes de ponctuation, séparés par un seul blanc. Vous pouvez supposer que chaque phrase contient au moins un mot.
Par exemple :

Terminez la méthode countWords ci-dessous.

/** @retourne le nombre de mots dans cette phrase
* Condition préalable : la phrase contient au moins un mot.
*/
public int countWords()
 
c) Écrivez la méthode Sentence getWords, qui renvoie un tableau de mots dans la phrase. Un mot est défini comme une chaîne de lettres et de ponctuation, et ne contient aucun espace. Vous pouvez supposer qu'une phrase contient au moins un mot.
Quelques exemples d'appel de getWords sont présentés ci-dessous.

Lors de l'écriture de la méthode getWords, vous devez utiliser les méthodes getBlankPositions et countWords, qui ont été écrites dans les parties (a) et (b). Vous pouvez supposer
que ces méthodes fonctionnent correctement, indépendamment de ce que vous avez écrit dans les parties (a) et (b).
Complétez la méthode getWords ci-dessous.

/** @retourne le tableau de mots de cette phrase
* Condition préalable :
* - Deux mots quelconques dans la phrase sont séparés par un blanc.
* - La phrase contient au moins un mot.
* Postcondition : la chaîne[] renvoyée contient les mots dans
* cette phrase.
*/
public Chaîne[] getWords()