Cryptage

Le problème

Soit un tableau (collection) t de longueur n contenant des valeurs entières quelconques. L’objectif de cet exercice est de coder les valeurs du tableau en utilisant une clé de codage. La clé de codage est elle-même un tableau (collection) cle de longueur m.

Principe du cryptage

Pour une clé [x, y, z], on ajoute :

  • x à t[0], y à t[1], z à t[2],
  • x à t[3], y à t[4], z à t[5],
  • et ainsi de suite on utilise x, y et z plusieurs fois.

Fonctionnement manuel

On utilise un indice i pour parcourir t et un indice j pour parcourir cle. On ajoute cle[j] à t[i] puis on incrémente i et j pour préparer l’itération suivante. Pour que j reste dans les bornes du tableau cle, on utilise le reste de la division par la taille du tableau.

Enregistrement de la boucle

On effectue les actions précédentes en mode enregistrement.

Sortie de la boucle

On exécute plusieurs fois le corps de boucle jusqu’à atteindre la fin du tableau t. On enregistre alors la condition de sortie.

Démarrage

Au début, les indices des tableaux doivent être mis à 0.

Exécution complète

Après avoir réinitialisé manuellement les valeurs du tableau t, on exécute l’ensemble du programme en mode automatique.

Define Cryptage
From
  i = 0 ;
  j = 0 ;
// …
Until
  (i >= t.length)
// …
Loop
  t[i] = t[i] + cle[j] ;
  i = i + 1 ;
  j = j + 1 ;
  j = j % cle.length ;
// …
Terminate
// …
End

Programme Python

t=[26, 50, 9, 66, 95, 38, 55, 23]c=[23, 4, 41]n = len(t)
m = len(c)
i =0
j = 0

while i < n :
   t[i] = t[i] + c[j]   i = i +1
   j = (j + 1)%m