dc1 Corr

Vous aimerez peut-être aussi

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Révision S2

Exercice n°1 : (4 points)


Soit la fonction Inc suivante :
Fonction Inc (c : caractère, ch : chaine) : Entier 1) Compléter le tableau de déclaration des objets locaux

Début Objet Type/Nature


P -1
i -1
Test Faux
Tant que i < Long(ch) - 1 et Test = Faux Faire 2) Donner les valeurs de i , P et Test pour c = "s" et
i i+1 ch = "dépression"
Si ch[i] = c alors
i
Test Vrai
P i
Test
FinSi P
Fin Tant que
3) Déduire le rôle de la fonction Inc
Retourner P
Fin

4) Donner une fonction prédéfinie ayant le même rôle.

Exercice n°2 : (4 points)


Evaluer les expressions suivantes :
1) Non(Aléa(0,12) < Long("Programmation")) et (Faux = Vrai)

2) (24 DIV 4 MOD 2 = 3) et (29 MOD 5 DIV 2 = 2)

3) CHR(ORD("A")) = Majus("a")

4) Ent(254.6) > Ent(254.3)

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 :

• On repère le nombre x associé à la lettre dans le tableau de correspondance précédent


• On multiplie ce nombre x par la clé k
• On calcule le reste r de la division euclidienne du nombre obtenu par 26
• On repère la lettre associée au nombre r dans le tableau de correspondance, qui devient la lettre
cryptée

Par exemple, pour crypter la lettre P avec la clé 𝑘𝑘 = 11 :

• Le nombre x associé à la lettre P est le nombre 15


• On multiplie 15 par la clé k, ce qui donne 11 × 15 = 165
• On calcule le reste de la division euclidienne par 26 : on obtient 165 MOD 26 = 9
• On repère finalement la lettre associée à 9 dans le tableau, c’est-à-dire J Ainsi
avec la clé k = 11, la lettre P est cryptée en la lettre J.
On crypte un mot en cryptant chacune des lettres de ce mot.
Exemple : pour une chaine "PYTHON"et k = 14 la chaine cryptée est "CYGUOA"

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

Caractère Le caractère Le caractère Le caractère Le caractère n° Le caractère n° 14 Le caractère n° 0


crypté n° 2 est le C n° 24 est le Y n° 6 est le G 20 est le U est le O est le A

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

Algorithme de la procédure Affiche_Texte_crypté


Procédure Affiche_Texte_crypté (ch : chaine, k : entier)
Début
Ecrire(Crypter_Texte(ch, k))
Fin

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

Vous aimerez peut-être aussi