Épreuve pratique 2009, sujet 139

mercredi 4 novembre 2009
par  Alain BUSSER

Comme c’est expliqué brièvement au début de l’énoncé, une chaîne de caractères est une suite de symboles (lettres, chiffres ou ponctuation) que l’on peut traiter en arithmétique grâce à une bijection entre les caractères et des entiers. Par chance, ce codage est un standard appelé dans le sujet ASCII. En fait une version plus moderne est appelée unicode et c’est celle-là qui sera utilisée dans ce corrigé.

PNG - 185.6 ko


Première étape : Codage

Le codage se fait en trois étapes :

  1. passage des lettres aux nombres (unicode suivi par la soustraction de 64, les 64 premiers codes n’étant pas des lettres)
  2. application d’une fonction affine modulo 27 à ces nombres.
  3. passage à des lettres à nouveau (unicode inverse).

On parle donc de chiffre affine pour ce genre de codage.

La variable acoder (pour « à coder ») est donc une chaîne de caractères, en JavaScript un objet de type String [1]. Pour le message codé on a besoin d’une autre variable de type String, initialement vide et appelé code (pour « codé » - on remarque que les accents sont évités, c’est pour faciliter le copier-coller à partir du script ci-dessous).

Voici le script qui fait la partie 1.b (le nombre acoder.length est la longueur de la chaîne à coder, donc le nombre de caractères) :

L’exécution de ce script sous CaRMetal donne l’affichage de ZFTVFCR@M@QFCD.


Deuxième étape : Décodage

Rien de nouveau, on refait les mêmes étapes à l’envers :


Troisième partie : Amélioration

Cette question semble facultative.

Le codage précédent était linéaire, celui-ci est vraiment affine :

Le message krypté est maintenant GNACNKZHUHYNKL.

Pour trouver l’ordonnée à l’origine de la fonction affine inverse (en admettant que son coefficient directeur est toujours 25), on peut encore utiliser JavaScript :

qui nous apprend que l’ordonnée à l’origine a pour opposé 11 modulo 27, et on trouve 27-11=16.


[1] en français les caractères sont des maillons d’une chaîne, en anglais ce sont des perles sur une corde.


Commentaires

Brèves

Hyper-vidéos pour l’algorithmique au lycée

dimanche 19 août 2012

Olivier Roizès, à la demande de l’ADIREM, a réalisé une collection d’hyper-vidéos de présentation de logiciels et environnements de programmation. Ces hyper-vidéos, c’est-à-dire des vidéos contenant des éléments clicables, devraient être utiles aux enseignants désireux de se familiariser avec Python, CaRMetal, R, Rurple, Scilab ou Xcas.

Ouverture du SILO

mardi 1er novembre 2011

Le SILO (Science Informatique au Lycée : Oui !) est un espace collaboratif documentaire de partage et de formation collégiale, à destination des professeurs appelés à enseigner l’informatique au lycée.

Une initiative du CNDP, de l’INRIA et de Pasc@line, à laquelle se sont associés SPECIF, fuscia, EPI et ePrep.

Sur le Web : Site du SILO

Introduction à la science informatique

lundi 12 septembre 2011

Le CRDP de Paris publie le premier ouvrage destiné aux professeurs chargés d’enseigner la nouvelle spécialité « Informatique et sciences du numérique » en Terminale S à la rentrée 2012. Cet ouvrage a été coordonné par Gilles Dowek, directeur de recherche à l’INRIA.

Sur la création de la spécialité ISN, on pourra également consulter l’interview donnée au Café pédagogique par l’inspecteur général Robert Cabanne.

Sur le Web : CRDP de Paris