Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)

Résultats :

Code de l'algorithme :
1     VARIABLES
2       e EST_DU_TYPE CHAINE
3       n EST_DU_TYPE NOMBRE
4       i EST_DU_TYPE NOMBRE
5       l EST_DU_TYPE LISTE
6       R1 EST_DU_TYPE LISTE
7       Rf EST_DU_TYPE LISTE
8       j EST_DU_TYPE NOMBRE
9       k EST_DU_TYPE NOMBRE
10      i1 EST_DU_TYPE NOMBRE
11      p EST_DU_TYPE NOMBRE
12      m1 EST_DU_TYPE NOMBRE
13      m2 EST_DU_TYPE NOMBRE
14      c EST_DU_TYPE NOMBRE
15      p1 EST_DU_TYPE NOMBRE
16      R2 EST_DU_TYPE LISTE
17      i2 EST_DU_TYPE NOMBRE
18      i3 EST_DU_TYPE NOMBRE
19      R3 EST_DU_TYPE LISTE
20      c2 EST_DU_TYPE NOMBRE
21      c3 EST_DU_TYPE NOMBRE
22      m3 EST_DU_TYPE NOMBRE
23      m4 EST_DU_TYPE NOMBRE
24      m5 EST_DU_TYPE NOMBRE
25      m6 EST_DU_TYPE NOMBRE
26    DEBUT_ALGORITHME
27      R1[1] PREND_LA_VALEUR 8:5:21:11:23:4:22:12:20:1:17:10:13:18:6:14:19:2:24:15:9:25:26:7:16:3
28      R2[1] PREND_LA_VALEUR 3:16:18:23:10:20:1:24:2:9:4:17:5:22:7:8:25:21:6:11:19:12:15:13:14:26
29      R3[1] PREND_LA_VALEUR 3:7:9:2:14:13:1:12:4:21:26:16:25:17:8:20:10:24:11:19:5:6:15:18:23:22
30      Rf[1] PREND_LA_VALEUR 8:16:13:12:11:9:21:1:6:20:5:4:3:26:19:2:23:22:15:10:7:18:17:25:24:14
31      LIRE c
32      LIRE c2
33      LIRE c3
34      LIRE e
35      n PREND_LA_VALEUR e.length
36      TANT_QUE (c!=0) FAIRE
37        DEBUT_TANT_QUE
38        m1 PREND_LA_VALEUR R1[1]
39        POUR p1 ALLANT_DE 1 A 25
40          DEBUT_POUR
41          m2 PREND_LA_VALEUR R1[p1+1]
42          R1[p1+1] PREND_LA_VALEUR m1
43          m1 PREND_LA_VALEUR m2
44          FIN_POUR
45        R1[1] PREND_LA_VALEUR m2
46        c PREND_LA_VALEUR c-1
47        FIN_TANT_QUE
48      TANT_QUE (c2!=0) FAIRE
49        DEBUT_TANT_QUE
50        m3 PREND_LA_VALEUR R2[1]
51        POUR p1 ALLANT_DE 1 A 25
52          DEBUT_POUR
53          m4 PREND_LA_VALEUR R2[p1+1]
54          R2[p1+1] PREND_LA_VALEUR m3
55          m3 PREND_LA_VALEUR m4
56          FIN_POUR
57        R2[1] PREND_LA_VALEUR m4
58        c2 PREND_LA_VALEUR c2-1
59        FIN_TANT_QUE
60      TANT_QUE (c3!=0) FAIRE
61        DEBUT_TANT_QUE
62        m5 PREND_LA_VALEUR R3[1]
63        POUR p1 ALLANT_DE 1 A 25
64          DEBUT_POUR
65          m6 PREND_LA_VALEUR R3[p1+1]
66          R3[p1+1] PREND_LA_VALEUR m5
67          m5 PREND_LA_VALEUR m6
68          FIN_POUR
69        R3[1] PREND_LA_VALEUR m6
70        c3 PREND_LA_VALEUR c3-1
71        FIN_TANT_QUE
72      POUR i ALLANT_DE 1 A n
73        DEBUT_POUR
74        l[i] PREND_LA_VALEUR e.charCodeAt(i-1)-64
75        FIN_POUR
76      POUR j ALLANT_DE 1 A n
77        DEBUT_POUR
78        l[j] PREND_LA_VALEUR R1[l[j]]
79        l[j] PREND_LA_VALEUR R2[l[j]]
80        l[j] PREND_LA_VALEUR R3[l[j]]
81        l[j] PREND_LA_VALEUR Rf[l[j]]
82        i3 PREND_LA_VALEUR 1
83        TANT_QUE (l[j]!=R3[i3]) FAIRE
84          DEBUT_TANT_QUE
85          i3 PREND_LA_VALEUR i3+1
86          FIN_TANT_QUE
87        l[j] PREND_LA_VALEUR i3
88        i2 PREND_LA_VALEUR 1
89        TANT_QUE (l[j]!=R2[i2]) FAIRE
90          DEBUT_TANT_QUE
91          i2 PREND_LA_VALEUR i2+1
92          FIN_TANT_QUE
93        l[j] PREND_LA_VALEUR i2
94        i1 PREND_LA_VALEUR 1
95        TANT_QUE (l[j]!=R1[i1]) FAIRE
96          DEBUT_TANT_QUE
97          i1 PREND_LA_VALEUR i1+1
98          FIN_TANT_QUE
99        l[j] PREND_LA_VALEUR i1
100       m1 PREND_LA_VALEUR R1[1]
101       POUR p ALLANT_DE 1 A 25
102         DEBUT_POUR
103         m2 PREND_LA_VALEUR R1[p+1]
104         R1[p+1] PREND_LA_VALEUR m1
105         m1 PREND_LA_VALEUR m2
106         FIN_POUR
107       R1[1] PREND_LA_VALEUR m2
108       c PREND_LA_VALEUR c+1
109       SI (c%26==0) ALORS
110         DEBUT_SI
111         m3 PREND_LA_VALEUR R2[1]
112         POUR p ALLANT_DE 1 A 25
113           DEBUT_POUR
114           m4 PREND_LA_VALEUR R2[p+1]
115           R2[p+1] PREND_LA_VALEUR m3
116           m3 PREND_LA_VALEUR m4
117           FIN_POUR
118         R2[1] PREND_LA_VALEUR m4
119         c2 PREND_LA_VALEUR c2+1
120         FIN_SI
121       c2 PREND_LA_VALEUR c2+1
122       SI (c2%26==0) ALORS
123         DEBUT_SI
124         m5 PREND_LA_VALEUR R3[1]
125         POUR p ALLANT_DE 1 A 25
126           DEBUT_POUR
127           m6 PREND_LA_VALEUR R3[p+1]
128           R3[p+1] PREND_LA_VALEUR m5
129           m5 PREND_LA_VALEUR m6
130           FIN_POUR
131         R3[1] PREND_LA_VALEUR m6
132         c3 PREND_LA_VALEUR c3+1
133         FIN_SI
134       FIN_POUR
135     POUR k ALLANT_DE 1 A n
136       DEBUT_POUR
137       e PREND_LA_VALEUR String.fromCharCode(l[k]+64)
138       AFFICHER e
139       FIN_POUR
140   FIN_ALGORITHME