Réaliser un programme Ruby permettant d'encoder et décoder un message via l'algorithme fournit. Cet algorithme associe chaque charactère d'un message à un autre selon la clé utilisée, via le code ASCII.
Exemple
Un nombre est associé à chaque caractère affichable de la table ASCII
abcdefghijklmnopqrstuvwxyz
0123456789...
Pour encoder position + clé
allo
encodé avec la clé 2
devient
cnnq
car l'alphabet original est décallé de 2 lettres
abcdefghijklmnopqrstuvwxyz
cdefghijklmnopqrstuvwxyzab
Pour décoder, on effectue le calcul inverse position - clé
via l'alphabet de référence
abcdefghijklmnopqrstuvwxyz
donc 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
Menu permettant de choisir entre 3 options: e pour encoder, d pour décoder ou q pour quitter le programme
Pour encoder/décoder, le programme demande à l'utilisateur de saisir un message ET une clé
Assurez-vous de gérer les erreurs possibles lors de la saisie ou du traitement des messages
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
12 septembre, 8h AM via LÉA
Nom: ____________________________________
Qualité de rédaction: Nomenclature, Formatage, Syntaxe | 0 |
Respect du format d'affichage | 0 |
Menu | |
Affichage des 3 options du menu | 0 |
Redemande si choix invalide | 0 |
Accepte minuscules ou majuscules | 0 |
Affichage répété tant que ne quitte pas | 0 |
Option 'q' quitte le programme | 0 |
Encoder | |
Option 'e' pour encoder | 0 |
Saisie du message | 0 |
Saisie de la clé | 0 |
Encodage en considérant la clé, affichage du résultat | 0 |
Décoder | |
Option 'd' pour décoder | 0 |
Saisie du message | 0 |
Saisie de la clé | 0 |
Décodage du message en considérant la clé, affichage du résultat | 0 |
Validations | 0 |