- IN220, TP n°2 -
>
Gérer des caractères |
|
En Java, une variable de type char permet de décrire un caractère d'une langue quelconque ou un symbole (ponctuation, symbole monétaire, ...). Chaque caractère est représenté par un nombre, et il est possible de réaliser des opérations sur les caractères. Par exemple, 'a' plus trois donne le caractère 'd', 'B' plus un donne le caractère 'C', et '3' (pas l'entier trois, mais le caractère qui représente le chiffre trois) plus cinq donne '8'. Pour afficher la valeur numérique correspondant à un caractère (et ainsi voir comment le caractère est codé dans Java), on convertit le caractère en int. |
|
1) Dans votre fonction main, déclarez une variable de type char, initialisez la à '3' (le caractère trois), et affichez la à l'écran (le caractère trois doit s'afficher). Affichez la valeur numérique associée à ce caractère en le convertissant, lors de l'affichage, en int (placez le mot clef int entre parenthèses devant votre variable lors de son affichage à l'écran). En regardant cette page, que constatez-vous ? |
|
2) Dans la même fonction, créez un second caractère initialisé à '5' (le caractère cinq), et affichez le à l'écran. Affichez aussi sa valeur numérique. |
|
3) Dans la même fonction, déclarez un troisième caractère, égal à la somme des deux précédents. Affichez le caractère ainsi que sa valeur numérique. Qu'en concluez-vous ? |
|
4) Trouvez une formule permettant d'afficher, pour tout caractère représentant une lettre minuscule, sa position dans l'alphabet. |
|
5) Voici un morceau de code à recopier dans votre main :
|
> Lire des caractères dans un fichier, codage de Cesar | |
Tout d'abord, lisez et complétez le tutoriel proposé sur la seconde page du projet (et téléchargez les fichiers requis, comme Fichier.java). |
|
1) Que constatez-vous lorsque vous ouvrez le fichier entree.txt (clic droit, puis enregistrer-sous) et le recopiez, tel quel, dans un autre fichier de sortie ? |
|
2) En utilisant la fonction est_une_lettre, réalisez un programme qui ne recopie en sortie que les lettres du fichier précédent (aucun espace, aucune ponctuation, ...). |
|
3) Vous devez maintenant écrire une fonction permettant de chiffrer les lettres d'un texte selon le code de Cesar, qui consiste à choisir un entier i et décaler toutes les lettres du message de i places. Par exemple, si i vaut 5, alors a devient f, b devient g, ... Attention, votre décalage doit "boucler" dans l'alphabet, c'est à dire que z deviendra e. Si dans votre fichier de sortie, vous avez des symboles étranges qui sont apparus, alors c'est raté... Voici comment procéder pour faire le décalage. Les caractères de type "lettre" lus dans le fichier ont une valeur compris entre 97 et 122. Vous devez, pour réaliser le bouclage, retirer 97 à la valeur du caractère, puis ajouter le décalage et faire un modulo 26 (le nombre de lettres de l'alphabet - l'opération modulo s'écrit %). Enfin, vous devrez revenir à une lettre comprise entre 97 et 122 en rajoutant 97 à votre valeur. Par exemple, si je souhaite appliquer un décalage de 5 et que ma lettre est x, voici ce qui se passera :
|