next up previous contents index
suivant: Traduction Xcas monter: Chiffrement affine : deuxième précédent: L'algorithme   Table des matières   Index

Traduction Algorithmique

Voici la transformation d'un mot m en un nombre entier n par la fonction mot2n :
fonction mot2n(mo)
local k,p,n
0->n
0->k
tantque k<longueur_mot(mo) $ \neq$ ""
asc(mo[k])-32->p
k+1->k
n*96+p->n
ftantque
retourne n
ffonction

Voici la transformation d'un nombre entier n en son écriture en base 96 (c'est à dire en un mot m d'au moins 3 lettres) par la fonction n2mot :
fonction n2mot(n)
local m,r,i
""->m
0->i
tantque n >0 ou i< 3
char((n mod 96)+32)->r
int(n/96)->n
r+m->m
i+1->i
ftantque
retourne m
ffonction

Voici le codage d'un mot d'au moins 3 lettres par la fonction codmot3 :
fonction codmot3(m,a,b,p)
local n
mot2n(m)->n
a.n+b mod p ->n
n2mot(n)->m
retourne m
ffonction

Voici le codage d'un message par la fonction codmess :
fonction codmess3(m,a,b,p)
local n,i,r,d
int(dim(m)/3)+1->n
{}->r
1->i
tantque i<n
debut(m,3)->d
fin(m,4)->m
codmot3(d,a,b,p)->r[i]
i+1->i
ftantque
si dim(m)=2 alors
m + " "->m
codmot3(m,a,b,p)->r[i]
sinon
si dim(m)=1 alors
m + " " ->m
codmot3(m,a,b,p)->r[i]
sinon
fin(r,i-1)->r
fsi
fsi
retourne r
ffonction



Documentation de giac écrite par Renée De Graeve