Vous allez créer sous scratch un programme permettant de coder un message en remplaçant chaque lettre
de l'alphabet (=caractère) par une autre, selon un tableau de codage défini.
Nous ne coderons que les 26 lettres majuscules de l'alphabet (pas d'accents, de cédille ...).
L'espace séparant deux mots sera codé sous la forme du caractère blanc souligné : "_".
Voici un exemple de tableau de codage :
Caractère non codé A B C D E F G H I J K L M N O P Q R S T U V WX Y Z _
Caractère codé (exemple) S H B WG D V N X O A P Y I J Q U T C F K E R L Z M _
Le message initial "BONJOUR" sera, avec ce tableau, codé : "HJIOJKT" (B devient H, O devient J ...)
Choix de votre tableau (clé) de codage :
Demandez à votre professeur un tableau de codage à compléter (téléchargeable sur [Link])
Complétez la deuxième ligne du tableau en choisissant pour chacun des caractères de l'alphabet non codé le
caractère codé qui lui correspond ; soyez méthodique, commencez par placer la lettre codée A, B, .... Z.
Comment scratch va coder votre message
Nous allons créer sous scratch deux variables :
- une variable "Message Initial" qui contiendra le message initial
- une variable "Message codé", qui contiendra le message ... codé !!
Quand vous allez taper au clavier le caractère "A" :
- la lettre A va être ajoutée à la variable "Message Initial"
- la lettre S (dans l'exemple) sera ajoutée à la variable "Message codé"
Programmation par blocs sous Scratch
Aucun lutin (objet) n'est nécessaire, vous devez les supprimer et créer les scripts sur la scène.
1. Créez les deux variables pour tous les lutins : elles seront globales et modifiables
par tous les objets, à contrario, les variables dites locales n'appartiennent qu'à un seul
objet. Cochez-les pour qu'elles soient affichées à l'écran.
Choisissez pour les créer le type de blocs
2. Initialisation des variables :
Au démarrage de l'application, les deux variables doivent être vides.
Par défaut, les variables, (plus souvent utilisées pour y placer des chiffres) sont
égales à 0, il faut donc remplacer le zéro par rien, le supprimer tout simplement.
Blocs du type et
3. Quand la lettre a (ou A) est pressée (1), il faut :
- l'ajouter (la regrouper) au message initial (2)
- et ajouter la lettre codée correspondante (3) au
message codé (voir votre tableau de codage).
Blocs du type
Cas particulier des espaces : quand la touche "espace" est pressée, on
ajoute un espace (blanc souligné "_") au message initial et au message codé.
Cliquez à droite et dupliquez le script de la lettre A, en changeant la lettre
pressée par "espace", la lettre initiale par "_" et la lettre codée par "_".
Les autres caractères : il suffit (!) maintenant de dupliquer 25 fois ce script pour les autres lettres de
l'alphabet, en modifiant à chaque fois la lettre pressée, en l'ajoutant au message initial, et en ajoutant au
message codé la lettre codée correspondante (voir votre tableau de codage).
4. Contrôle du codage : Vérifiez en tapant l'alphabet complet (et l'espace !) et en vérifiant ensuite chaque
caractère codé grâce à votre tableau de codage complété au début de l'activité.
CF 31-mars-18 1/2 Coder_un_message_avec_Scratch_fg
Récupérer (exporter sous forme de fichier texte) le message codé
On souhaite maintenant pouvoir enregistrer dans un fichier le message codé.
La variable "Message codé" n'étant pas "copier-collable", il faut placer le message codé dans une liste.
Pour cela, vous allez créer un bouton "Fin du message", et une fois cliqué, il recopiera le message codé
(contenu dans la variable "Message Codé") dans une liste appelée "MESSAGE CODÉ" (en majuscule car une
donnée - liste ou variable - ne peut pas avoir le même nom qu'une autre donnée.
Une liste est un tableau contenant des éléments (ou lignes), chaque élément de la liste "MESSAGE CODÉ"
est comme une variable qui contiendra un seul caractère du message codé.
5. Créez un nouvel objet (lutin) : le bouton "Lister le
message pour pouvoir l'exporter",
Choisissez dans la bibliothèque le button2, et modifiez son
costume pour qu'il indique sa fonction "Lister le mess ...".
6. Créez la liste "MESSAGE CODÉ"
Choisissez pour cela le type de blocs
Explications : Quand le bouton "Fin du message" sera cliqué, il devra
- dans un premier temps vider complètement la liste "MESSAGE CODÉ",
- puis la reconstruire en prenant pour chacun de ses éléments une lettre de la variable "Message Codé".
7. Vider la liste "MESSAGE CODÉ" : on commence par
le dernier élément, on le supprime, et on recommence
jusqu'à ce que la longueur de la liste soit nulle (liste vide).
Blocs du type
Explications :
Au départ la longueur de MESSAGE CODÉ est nulle, puisqu'elle a été vidée.
On ajoute un élément à la liste "MESSAGE CODÉ", (sa longueur devient égale à 1) et on y place la 1° lettre
de la variable "Message Codé"
Si la longueur de la liste (=1) est supérieure (>) à la longueur du message codé, on arrête là (la liste est finie)
Sinon, on répète :
On ajoute un élément à la liste "MESSAGE CODÉ", (sa longueur est égale à 2) et on y place la 2° lettre de la
variable "Message Codé"
Si la longueur de la liste (=2) est supérieure (>) à la longueur du message codé, on arrête là (la liste est finie)
Sinon, on répète ...
8. Construire la liste "MESSAGE CODÉ" :
Il faut ajouter au script précédent la boucle
"Répéter jusqu'à" ci-contre :
Blocs du type
9. Exporter le message :
Cliquez à droite sur la partie grisée de la liste et cliquez sur "Exporter", vous pouvez
enregistrer un fichier contenant votre message codé.
Numérotez vos messages codés : MESSAGE CODE [Link] etc
10. Contrôle du codage : Vérifiez en tapant l'alphabet complet (et l'espace !) et en vérifiant ensuite chaque
caractère codé du fichier message codé grâce à votre tableau de codage complété au début de l'activité.
CF 31-mars-18 2/2 Coder_un_message_avec_Scratch_fg