Réaliser une application console Ruby permettant d'encoder et décoder un message via un algorithme fournit.
L'algorithme utilise la clé fournie pour produire un charactère encodé correspondant à la valeur reçue, via le code ASCII.
Fonctionnement
Un nombre est associé à chaque caractère, la table ASCII
abcdefghijklmnopqrstuvwxyz
0123456789...Pour encoder, on calcule la nouvelle valeur de chaque caractère: position + clé
alloencodé avec la clé 2 devient
cnnqcar l'alphabet original est décallé de 2 lettres
abcdefghijklmnopqrstuvwxyz
cdefghijklmnopqrstuvwxyzabPour décoder, on effectue le calcul inverse position - clé via l'alphabet de référence
abcdefghijklmnopqrstuvwxyzdonc c - 2 positions devient a, et ainsi de suite.
Le code fournit s'assure de retourner une valeur dans l'interval de caractères affichables
Permets de choisir entre 3 options: e pour encoder, d pour décoder ou q pour quitter le programme
Le programme demande à l'utilisateur de saisir un message ET une clé
Appuyer sur 'd' pour décoder, 'e' pour encoder ou 'q' pour quitter: e
Contenu a traiter: Allo le monde!
Clé: 42
Secret = dFFimFtmWisptv
Appuyer sur 'd' pour décoder, 'e' pour encoder ou 'q' pour quitter: d
Contenu a traiter: dFFimFtmWisptv
Clé: 42
Message = Allo le monde!
Appuyer sur 'd' pour décoder, 'e' pour encoder ou 'q' pour quitter: d
Contenu a traiter: allo
Clé:
Message = allo
Appuyer sur 'd' pour décoder, 'e' pour encoder ou 'q' pour quitter: d
Contenu a traiter: allo
Clé: 56
Message = e77m
Appuyer sur 'd' pour décoder, 'e' pour encoder ou 'q' pour quitter: qÉnoncé de travail sur LÉA
Nom:
| Qualité de rédaction, Nomenclature, Formatage, Syntaxe | 2 1.5 1 0 |
| Respect du format d'affichage | 2 1.5 1 0 |
| Validations saisie | 2 1.5 1 0 |
| Compréhension | 0 -0.5 -1 -2 -3 |
| Menu | |
| Affichage des 3 options | 1 0.5 0 |
| Accepte minuscule OU majuscule | 1 0.5 0 |
| Redemande si invalide, Répète tant que ne quitte pas | 1 0.5 0 |
| Option 'q' quitte le programme | 1 0.5 0 |
| Encoder | |
| Option 'e' | 1 0.5 0 |
| Saisie du message | 1 0.5 0 |
| Saisie de la clé | 1 0.5 0 |
| Encodage, affichage du résultat | 2 1.5 1 0 |
| Décoder | |
| Option 'd' | 1 0.5 0 |
| Saisie du message | 1 0.5 0 |
| Saisie de la clé | 1 0.5 0 |
| Décodage, affichage du résultat | 2 1.5 1 0 |