suivant: Le programme C++
monter: Le codage Jules César
précédent: Les différentes étapes du
Table des matières
Index
codec2n(c):={
if (c=="é") return 100;
if (c=="è") return 99;
if (c=="à") return 98;
if (c=="ç") return 97;
if (c=="ù") return 96;
if (c=="ê") return 95;
return(asc(c)-32);
};
coden2c(k):={
if (k== 100) return "é";
if (k==99) return "è";
if (k==98) return "à";
if (k==97) return "ç";
if (k==96) return "ù";
if (k==95) return "ê";
return(char(k+32));
};
jules_cesar(message,clef):={
local s,j,messcode;
s:=size(message);
messcode:="";
for (j:=0;j<s;j++) {
messcode:=append(messcode,
coden2c(irem(clef+codec2n(message[j]),101)));
}
return (messcode);
};
lineaire(message,clef):={
local s,j,messcode;
s:=size(message);
messcode:="";
for (j:=0;j<s;j++) {
messcode:=messcode+coden2c(irem(clef*codec2n(message[j]),101));
}
return (messcode);
};
codec2n transforme un caractère c "autorisé" en un entier n,
0
n < 101 selon la table 7.6.1.
coden2c transforme un entier n,
0
n < 101
en un caractère c selon la table 7.6.1.
jules_cesar (respectivement lineaire) code le message selon la
clé choisie. On remarquera que les deux fonctions ne diffèrent que par
l'opération effectuée :
clef+codec2n(message[j]) pour la fonction jules_cesar et
clef+codec2n(message[j]) pour la fonction lineaire.
Pour décoder, il suffit d'employer le même programme en utilisant la clef
de décodage associée à la clef de codage et à la méthode utilisée :
par exemple, pour jules_cesar de clef de codage 99 la clé
de décodage associée est 2 (
2 + 99 = 101 = 0 mod 101) et
pour lineaire de clef de codage 99 la clef
de décodage associée est 50 puisque
99*50 = - 2*50 = - 100 = 1 mod 101.
Documentation de giac écrite par Renée De Graeve