12.07.2015 Views

Exercices (Chaînes de caractères) - Fabrice Rossi

Exercices (Chaînes de caractères) - Fabrice Rossi

Exercices (Chaînes de caractères) - Fabrice Rossi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Exemple : le résultat <strong>de</strong> l’appel modifie("AAABBBAA",’B’,’-’) pourra être"AAA-BBAA", "AAAB-BAA" ou "AAABB-AA", selon l’apparition choisie.9. Écrire une métho<strong>de</strong> pyrami<strong>de</strong>3 prenant comme paramètre un entier n. Cette métho<strong>de</strong>commencera par utiliser pyrami<strong>de</strong>2 pour fabriquer une pyrami<strong>de</strong> dans une chaîne <strong>de</strong>caractères, puis elle appellera plusieurs fois modifie afin <strong>de</strong> remplacer 25% <strong>de</strong>s caractères+ par *. Elle aura pour résultat la chaîne <strong>de</strong> caractères ainsi obtenue.Exemple : comme modifie est aléatoire, nous n’indiquons ici qu’un seul résultat possiblepour l’appel pyrami<strong>de</strong>3(3), à savoir la chaîne__+__\n_*++_\n+++*+Cette chaîne s’affiche <strong>de</strong> la façon suivante :__+___*++_+++*+Notons bien que pyrami<strong>de</strong>3 ne fait pas d’affichage.10. Écrire une métho<strong>de</strong> développe prenant comme paramètre <strong>de</strong>ux chaînes <strong>de</strong> caractères set t, et un caractère c. Le résultat <strong>de</strong> la métho<strong>de</strong> est la chaîne s dans laquelle chaqueapparition <strong>de</strong> c a été remplacée par la chaîne t.Exemple : le résultat <strong>de</strong> développe("bAbAAd","XoY",’A’) est donc la chaîne"bXoYbXoYXoYd".11. On appelle p n la chaîne <strong>de</strong> caractères produite par l’appel pyrami<strong>de</strong>2(n), c’est-à-dire lapyrami<strong>de</strong> <strong>de</strong> hauteur n. On peut montrer que p n+1 s’obtient à partir <strong>de</strong> p n par l’algorithmesuivant :(a) u s’obtient en ajoutant un espace au début et à la fin <strong>de</strong> p n ;(b) v est le résultat du remplacement dans u <strong>de</strong> \n par la chaîne "_\n_" (l’espace est iciremplacé par "_") ;(c) p n+1 s’obtient enfin en ajoutant à v le caractère \n puis la <strong>de</strong>rnière ligne <strong>de</strong> la pyrami<strong>de</strong>(celle qui ne contient que <strong>de</strong>s +).Programmer une métho<strong>de</strong> développe2 qui applique à une chaîne s et un entier n l’algorithmequi vient d’être présenté, et renvoie la chaîne résultat. Pourquoi le paramètre nest-il indispensable ? Notons qu’il correspond à p n et que l’appel développe2(p n ,n) doitdonc produire comme résultat la chaîne p n+1 .12. Programmer une métho<strong>de</strong> pyrami<strong>de</strong>4 qui produit le même résultat que pyrami<strong>de</strong>2 maisen utilisant la métho<strong>de</strong> développe2.13. Programmer une métho<strong>de</strong> randomChar, prenant comme paramètre un entier n et renvoyantsoit le caractère +, soit le caractère *. Plus précisément, la métho<strong>de</strong> choisit aléatoirementun entier compris entre 1 et n et renvoie * si et seulement si cet entier est égalà 1. En moyenne on obtient donc le caractère + n-1 fois sur n. Programmer une métho<strong>de</strong>combineAléa prenant comme paramètres <strong>de</strong>ux entiers n et p et fabrique une chaîne <strong>de</strong>p caractères obtenue en utilisant randomChar avec comme paramètre n. Programmer enfinune métho<strong>de</strong> pyrami<strong>de</strong>5 qui obtient directement un résultat similaire à pyrami<strong>de</strong>3.Quelles sont les différences entre les résultats <strong>de</strong> <strong>de</strong>ux métho<strong>de</strong>s ?Problème 3.2 :On souhaite étudier dans une chaîne <strong>de</strong> caractères les séquences <strong>de</strong> caractères i<strong>de</strong>ntiques,c’est-à-dire les séquences <strong>de</strong> la forme "aaaa". Il faut bien sûr qu’une séquence <strong>de</strong> caractèresi<strong>de</strong>ntiques comporte au moins <strong>de</strong>ux caractères pour qu’elle soit prise en compte !F. <strong>Rossi</strong>– 8 janvier 2002 (Version 2.1) p. 11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!