"'O
0
c
:J
0
:<:;
li)
.,,
..--t
c::
:l
0
~
N
"
@
~
.......
0
J::
:;
O'l
"'
·;::::
c::
0
>c::
o.
c::
0
.9
u
ü
:l
.,,
2
o.
~
"
:;
0
11
.,,
0
c:
:l
0
QJ
10.8 • Cryptographie
Variables globales : alphabet, textcod (chaînes), decal (entier)
.. . ....... . . . ... ... .. . ... Fonctions . .... . . . . . . . ... .. ... . . . . . . . . .
Fonction codage(message: chaîne ,d: entier) : chaîne
Variables locales : k,i (entiers), messagecode (chaine)
Début
messagecode +-- "
#Initialisation : chaîne vide
Pour k de 0 à longueur(message)-1 Faire
Si message[k]==' 'Alors #caractère "espace"
1
messagecode +-- messagecode+' '
Fin Si
Pour i de 0 à 25 Faire
Si message[k]==alphabet[i] Alors
1
messagecode +-- messagecode+alpha[(i+d)%26]
FinSi
Fin Pour
Fin Pour
Retourner(messagecode)
Fin Fonction
Fonction freq_lettres(messagecode: chaîne) : liste
Variables locales : k,i (entiers), listefreq (liste)
Début
listefreq +-- [0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0]
Pour k de 0 à longueur(messagecode)-1 Faire
Pour i de 0 à 25 Faire
Si messagecode[k]==alphabet[i] Alors
1
li stefreq [i] +-- 1 i stefreq [i]+ 1
FinSi
Fin Pour
Fin Pour
Retourner(! istefreq)
Fin Fonction
Fonction calcul_auto_decal(messagecode : chaîne) : entier
Variables locales : i, indicemax (entiers), liste_freq (liste)
Début
indicemax +-- 0
liste_freq +-- freq_lettres(messagecode)
Pour ide 0 à 25 Faire
Si liste_freq[i]>indicemax Alors
1
indicemax +-- i
Fin Si
Fin Pour
Si indicemax>=4 Alors
1
d +-- indicemax-4
Sinon
1
d +-- indicemax+22
FinSi
Retourner(d)
Fin Fonction
. .. ... . ... . . . ... .. ... . . Partie principale ... . . . .... . .............. . .
247
0
c
:J
0
:<:;
li)
.,,
..--t
c::
:l
0
~
N
"
@
~
.......
0
J::
:;
O'l
"'
·;::::
c::
0
>c::
o.
c::
0
.9
u
ü
:l
.,,
2
o.
~
"
:;
0
11
.,,
0
c:
:l
0
QJ
10.8 • Cryptographie
Variables globales : alphabet, textcod (chaînes), decal (entier)
.. . ....... . . . ... ... .. . ... Fonctions . .... . . . . . . . ... .. ... . . . . . . . . .
Fonction codage(message: chaîne ,d: entier) : chaîne
Variables locales : k,i (entiers), messagecode (chaine)
Début
messagecode +-- "
#Initialisation : chaîne vide
Pour k de 0 à longueur(message)-1 Faire
Si message[k]==' 'Alors #caractère "espace"
1
messagecode +-- messagecode+' '
Fin Si
Pour i de 0 à 25 Faire
Si message[k]==alphabet[i] Alors
1
messagecode +-- messagecode+alpha[(i+d)%26]
FinSi
Fin Pour
Fin Pour
Retourner(messagecode)
Fin Fonction
Fonction freq_lettres(messagecode: chaîne) : liste
Variables locales : k,i (entiers), listefreq (liste)
Début
listefreq +-- [0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0]
Pour k de 0 à longueur(messagecode)-1 Faire
Pour i de 0 à 25 Faire
Si messagecode[k]==alphabet[i] Alors
1
li stefreq [i] +-- 1 i stefreq [i]+ 1
FinSi
Fin Pour
Fin Pour
Retourner(! istefreq)
Fin Fonction
Fonction calcul_auto_decal(messagecode : chaîne) : entier
Variables locales : i, indicemax (entiers), liste_freq (liste)
Début
indicemax +-- 0
liste_freq +-- freq_lettres(messagecode)
Pour ide 0 à 25 Faire
Si liste_freq[i]>indicemax Alors
1
indicemax +-- i
Fin Si
Fin Pour
Si indicemax>=4 Alors
1
d +-- indicemax-4
Sinon
1
d +-- indicemax+22
FinSi
Retourner(d)
Fin Fonction
. .. ... . ... . . . ... .. ... . . Partie principale ... . . . .... . .............. . .
247
