Adloun

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

Exercice suivant et tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →