codage ascii et codage affine

Merci !

Exercices
Classe(s) : Tle S | Thème(s) : Arithmétique

Partie A. Le code ASCII.

En informatique, le code ASCII consiste à associer à chaque caractère (lettre de l’alphabet, chiffre, signe de ponctuation, . . .) un code numérique entier, compris entre 0 et 255, que l’on appelle son code ASCII.

Par exemple, le code de A est 65, celui de B est 66, et ainsi de suite pour tout l’alphabet, celui de a est 97, celui de l’espace est 32...

1. a. En considérant que la lettre A occupe la place dans l’alphabet, donner une formule reliant C, le code ASCII d’une lettre, et sa place N dans l’alphabet.

b. Déterminer le code ASCII de la lettre Z.

La 26e lettre de l’alphabet occupe la place N =…. . .

c. À quelle lettre correspond le code ASCII 82 ?

2. Pour crypter un message, on peut effectuer le codage affine suivant : pour chaque lettre, on calcule sa position N dans l’Alphabet, puis on détermine le reste modulo 26 du produit Ce reste r correspond à une lettre majuscule qu’on transmettra en guise de message codé.

a. Déterminer le reste correspondant à la lettre A, puis à la lettre B, puis à la lettre M. Quel code sera transmis pour les lettres A, B, M ?

b. Justifier que (modulo 26), et en déduire la lettre correspondant au reste

On commencera par calculer le reste modulo 26 de

Partie B. Codage affine et Algobox.

1. Écrire un programme qui donne C, le code ASCII d’une lettre écrite en majuscules, détermine sa place N dans l’Alphabet, affiche son reste r modulo 26, puis la lettre majuscule à transmettre : on pourra l’appeler code.

Il y a deux étapes opérations bien distinctes. L’une qui donnera la position de la lettre dans l'alphabet en fonction de son code ASCII (et inversement), et l'autre qui permet le codage affine à proprement parler. Cette dernière est exclusivement réalisée sur la position de la lettre dans l'alphabet. Il suffit ensuite de bien respecter l'ordre des opérations demandées.

Syntaxe Algobox : la lettre à coder et le code seront des variables de type chaine. Lettre.charCodeAt(0) renvoie le code ASCII du caractère situé en première position dans la chaine lettre, c’est-à-dire qu’une chaine est une liste de caractères numérotés à partir de 0.

String.fromCharCode(r) renvoie la lettre dont le code ASCII est r.

Le reste de la division Euclidienne de a par b se calcule avec la formule

2. Utiliser ce programme pour coder le mot DIVISIBILITE.

Partie C. Décodage affine et Algobox.

1. Modifier le programme de la partie B pour qu’il retrouve la lettre initiale à partir de la lettre codée.

Utiliser A.2.b.

2. Décoder le mot REODUEPC.