Académique Documents
Professionnel Documents
Culture Documents
dc1 Corr
dc1 Corr
dc1 Corr
3) CHR(ORD("A")) = Majus("a")
Page 1|4
Problème : Cryptage affine (12 points)
Chacune des 26 lettres est associée à l’un des entiers de 0 à 25, selon le tableau de correspondance suivant.
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Le cryptage affine se fait à l’aide d’une clé, qui est un nombre entier k fixé, compris entre 1 et 25. Pour crypter
une lettre donnée on suit le processus ℘ suivant :
Caractère P Y T H O N
x 15 24 19 7 14 13
x*k 15*14 =210 24*14=336 19*14=266 7*14=98 14*14=196 13*14=182
x * k mod 26 210 mod 26 = 2 336 mod 26 = 24 266 mod 26 = 6 98 mod 26= 20 196 mod 26 = 14 182 mod 26 = 0
Travail demandé :
1) Ecrire un module Saisie_Texte qui permet de saisir une chaine alphabétique en majuscule et un entier k
compris entre 1 et 25.
2) Ecrire un module Crypter_Texte qui prend en paramètre une chaîne de caractères dont les éléments sont
des lettres majuscules, et une clé k. Le module renvoi la chaîne de caractères cryptée.
3) Ecrire un module Affiche_Texte_crypté qui permet d’afficher la chaîne de caractères cryptée.
Remarque :
Créer les tableaux de déclaration des objets locaux pour tous les modules
Page 2|4
Algorithme de la procédure Saisie_Texte
Procédure Saisie_Texte(@ch : chaine, @k : entier)
Début
Test Vrai
Tant que Test = Vrai Faire
Ecrire(" Donner une chaine alphabétique en majuscule : "), Lire(ch)
i 0
Tant que i < Long(ch) et ch[i ] ∈ ["A".."Z "] Faire
i i+1
Fin Tant que T.D.O.Locaux
Test Non (i = Long(ch)) Objet Type/Nature
Fin Tant que Test Booléen
Ecrire(" Donner k : "), Lire(k) i Entier
Tant que 1 > k > 25 Faire
Ecrire(" Donner k : "), Lire(k)
Fin Tant que
Fin
Algorithme de la fonction Crypter_Texte
Fonction Crypter_Texte (ch : chaine, k : entier) : chaine
Début
ch_crypt ""
Pour i de 0 à Long(ch) - 1 faire
ch_crypt ch_crypt + alpha[k * Pos(ch[ i ],alpha) MOD 26 ]
FinPour
Retourner ch_crypt
Fin
T.D.O.Locaux
Objet Type/Nature
ch_crypt Chaine
alpha Constante de valeur "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
i Entier
Page 3|4
2ème Méthode :
Algorithme de la fonction Crypter_Texte
Fonction Crypter_Texte (ch : chaine, k : entier) : chaine
Début
ch_crypt ""
Pour i de 0 à Long(ch) - 1 faire
ch_crypt ch_crypt + CHR(k * (ORD(ch[i]) – 65) MOD 26 )
FinPour
Retourner ch_crypt
Fin
T.D.O.Locaux
Objet Type/Nature
ch_crypt Chaine
i Entier
Page 4|4