programmation Java (école d'ingénieur) · Chapitre 2 · Exercice de TD
Chiffrement de César
Types, variables et expressions · niveau 2
Énoncé
Le chiffre de César décale chaque lettre de rangs dans l'alphabet, en recommençant à 'a' après 'z'. Écrire l'expression qui code une lettre minuscule c, puis celle qui décode. Vérifier que 'x' devient 'a' et que 'c' redevient 'z'.
Corrigé
public class Cesar {
public static void main(String[] args) {
char c = 'x';
int decalage = 3;
char code = (char) ('a' + (c - 'a' + decalage) % 26);
System.out.println(c + " -> " + code);
char d = 'c';
char clair = (char) ('a' + (d - 'a' - decalage + 26) % 26);
System.out.println(d + " -> " + clair);
}
}
x -> a
c -> z
c - 'a' est le rang de la lettre ( pour 'a', pour 'x'). On ajoute le décalage modulo (), puis on revient à une lettre en ajoutant 'a' et en transtypant en char. Pour décoder, on retire ; le évite un rang négatif, car % garderait le signe : (2 - 3) % 26 vaut , pas .
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.