"'O
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre l 0 · Travaux pratiques
248
Début
alphabet+-- 'abcdefghijklmnopqrstuvwxyz'
textcod +-- 'tew wm jegmpi uyi gipe pi gsheki hi giwev'
decal +-- calcul_auto_decal(textcod)
Afficher(codage(textcod ,-decal))
Fin
b) Implémentation Python
#########################Fonctions##############################
d e f c o d a g e ( me s s a g e , d ) :
me s s a g e c o d e = "
f o r k i n r a n g e ( 1 e n ( me s s a g e ) ) :
i f me s s a g e [ k ] = = ' ' :
messagecode=messagecode+' '
for i in range(26):
i f me s s a g e [ k ] = = a 1 p h a b e t [ i ] :
me s s a g e c o d e = me s s a g e c o d e + a 1 p h a b e t [ ( i + d ) %2 6 ]
r e t u r n ( me s s a g e c o d e )
d e f f r e q _ 1 e t t r e s ( me s s a g e c o d e ) :
1 i st ef r eq=[ 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 , O]
f o r k i n r a n g e ( 1 e n ( me s s a g e c o d e ) ) :
for i in range(26):
i f me s s a g e c o d e [ k ] = = a 1 p h a b e t [ i ] :
1 i s te fr e q [ i] =l i ste fr e q [ i ] + 1
r etu rn ( I i stefreq)
d e f c a 1 c u 1 _ a u t o _ d e c a 1 ( me s s a g e c o d e ) :
i ndi cemax=O
1 i s t e _ f r e q = f r e q _ 1 e t t r e s ( me s s a g e c o d e )
for i in range(26):
if liste _ freq[i]>indicemax:
i ndi ce max= i
i f i n d i c e ma x > = 4 :
d = i n d i c e ma x - 4
e 1 s e :
d = i n d i c e ma x + 2 2
return(d)
#####################Partie principale ##########################
a 1 p h a b e t =' a b c d e f g h i j k 1 mn o p q r s t u v wx y z '
t e x t c o d =' t e w wm j e g mp i u y i g i p e p i g s h e k i h i g i we v '
de ca l =ca l cu l _ aut o _deca l ( t ext cod)
pr i nt (codage( t ext cod, -decal))
C) Résultats obtenus après exécution
On obtient le message d'origine: « pas si facile que cela le codage de cesar » .
0
c
:J
0
li)
..--t
0
N
@
.......
J::
O'l
·;::::
>0.
0
u
Chapitre l 0 · Travaux pratiques
248
Début
alphabet+-- 'abcdefghijklmnopqrstuvwxyz'
textcod +-- 'tew wm jegmpi uyi gipe pi gsheki hi giwev'
decal +-- calcul_auto_decal(textcod)
Afficher(codage(textcod ,-decal))
Fin
b) Implémentation Python
#########################Fonctions##############################
d e f c o d a g e ( me s s a g e , d ) :
me s s a g e c o d e = "
f o r k i n r a n g e ( 1 e n ( me s s a g e ) ) :
i f me s s a g e [ k ] = = ' ' :
messagecode=messagecode+' '
for i in range(26):
i f me s s a g e [ k ] = = a 1 p h a b e t [ i ] :
me s s a g e c o d e = me s s a g e c o d e + a 1 p h a b e t [ ( i + d ) %2 6 ]
r e t u r n ( me s s a g e c o d e )
d e f f r e q _ 1 e t t r e s ( me s s a g e c o d e ) :
1 i st ef r eq=[ 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 , O]
f o r k i n r a n g e ( 1 e n ( me s s a g e c o d e ) ) :
for i in range(26):
i f me s s a g e c o d e [ k ] = = a 1 p h a b e t [ i ] :
1 i s te fr e q [ i] =l i ste fr e q [ i ] + 1
r etu rn ( I i stefreq)
d e f c a 1 c u 1 _ a u t o _ d e c a 1 ( me s s a g e c o d e ) :
i ndi cemax=O
1 i s t e _ f r e q = f r e q _ 1 e t t r e s ( me s s a g e c o d e )
for i in range(26):
if liste _ freq[i]>indicemax:
i ndi ce max= i
i f i n d i c e ma x > = 4 :
d = i n d i c e ma x - 4
e 1 s e :
d = i n d i c e ma x + 2 2
return(d)
#####################Partie principale ##########################
a 1 p h a b e t =' a b c d e f g h i j k 1 mn o p q r s t u v wx y z '
t e x t c o d =' t e w wm j e g mp i u y i g i p e p i g s h e k i h i g i we v '
de ca l =ca l cu l _ aut o _deca l ( t ext cod)
pr i nt (codage( t ext cod, -decal))
C) Résultats obtenus après exécution
On obtient le message d'origine: « pas si facile que cela le codage de cesar » .
