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