Tester l'algorithme :
Graphique :
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