Exercices - Série 11
Transcription
Exercices - Série 11
Exercices – Série 11 Type char, fichiers et nombres aléatoires 1. Quelques exercices sur les char a) Créez-vous un projet QuelquesChars pour expérimenter avec les chars. b) Déclarez deux variables, carAMin, qui vaut la lettre a minuscule et carAMaj, qui vaut la lettre a majuscule, et affichez-les à l’écran avec un simple println. c) Créez-vous deux nouvelles variables int carAMinCode et carAMajCode qui contiendront le code Unicode de chacun des deux chars que vous avez déclarés. Utilisez une instruction comme celle-ci pour faire cette conversion : int carAMinCode = carAMin; // c’est tout simple, en fait Une fois fait, affichez le code de chacun des deux caractères. Ces deux codes correspondent-ils à ceux que l’on trouve sur la table Unicode du site http://jrgraphix.net/research/unicode_blocks.php ? Sont-ils les mêmes que ceux que l’on trouve dans la table ASCII (http://fr.wikipedia.org/wiki/Ascii) ? d) Déclarez une variable carRetourChariot et initialisez-la à la valeur du caractère retour chariot, puis affichez son contenu à l’aide d’un simple println. e) Quel est le code ASCII du retour chariot ? Quel est son code Unicode ? f) Lancez l’utilitaire charmap dans Windows (Démarrer > Exécuter > Entrez charmap) et choisissez la police Arial en haut de la fenêtre, puis trouvez le code Unicode du symbole ©. 1 2. Afficher le rang des lettres de l’alphabet a) Créez-vous un projet RangLettres b) Déclarez une variable mot de type String et tabMot de type tableau de 10 char c) Demandez à l’utilisateur d’entrer un mot de 1 à 10 caractères de longueur d) Convertissez la String en tableau de char, après vous être assuré que tout est en minuscules e) Pour chacune des lettres du mot affichez son rang dans l’alphabet comme dans l’exemple qui suit : Astuce de programmation Il est possible de faire des opérations arithmétiques avec une variable de type char. Si on a un 'a', par exemple, il a un code ASCII correspondant (97) et on peut effectuer des opérations arithmétiques simples sur ce code. 2 3. Mélangeur de mots Le but de cet exercice est de vous créer un programme qui 1. lit un fichier contenant un mot par ligne 2. mélange les lettres du mot 3. écrit le mot mélangé dans un autre fichier a) Créez-vous un projet MelangeurMots et créez-vous un fichier texte mots.txt contenant 10 mots, un sur chaque ligne. b) Dans votre programme, lisez chaque ligne du fichier mots.txt et affichez à l’écran les mots lus dans ce fichier, en minuscules et sans espaces avant et après. Par exemple, si vous lisez le mot VOILIER dans mots.txt, affichez voilier . c) Pour chaque mot lu, mis en minuscules et rogné, utilisez la fonction toCharArray() pour créer un tableau contenant les lettres du mot lu. d) Nous allons maintenant mêler les lettres du tableau. Utiliser pour ceci un générateur de nombres aléatoires ainsi que l’algorithme décrit ici : http://en.wikipedia.org/wiki/Fisher-Yates_shuffle#The_modern_algorithm dont voici une copie (rng est leur générateur). int[] array = new int[NB_ELEMS]; Random rng = new Random(); // i.e., java.util.Random int n = array.length; // The number of items left to shuffle while (n > 1) { int k = rng.nextInt(n); // 0 <= k < n. n--; // n is now the last pertinent index; int temp = array[n]; // swap array[n] with array[k] array[n] = array[k]; array[k] = temp; } e) Une fois le tableau mêlé, créez une String avec ces caractères mêlés. Indice : vous aurez un bout de code qui ressemble à ceci : motMele += tabCaracteres[i]; f) Affichez le mot mêlé à l’écran pour vérifier que tout fonctionne. g) Écrivez ces mots mêlés, un par ligne, dans un fichier motmeles.txt, dans le répertoire du projet (donc pas de chemin devant le nom du fichier, seulement son nom). h) Avez-vous fermé tous vos fichiers avec close() dès que possible ? 3 La table ASCII 4