Tester l'algorithme :
Graphique :
Code de l'algorithme :
1
VARIABLES
2
i EST_DU_TYPE NOMBRE
3
j EST_DU_TYPE NOMBRE
4
k EST_DU_TYPE NOMBRE
5
J EST_DU_TYPE NOMBRE
6
al EST_DU_TYPE LISTE
7
t EST_DU_TYPE NOMBRE
8
n EST_DU_TYPE NOMBRE
9
ng EST_DU_TYPE NOMBRE
10
ar EST_DU_TYPE NOMBRE
11
nr EST_DU_TYPE NOMBRE
12
nt EST_DU_TYPE NOMBRE
13
n0 EST_DU_TYPE NOMBRE
14
n1 EST_DU_TYPE NOMBRE
15
n2 EST_DU_TYPE NOMBRE
16
n3 EST_DU_TYPE NOMBRE
17
DEBUT_ALGORITHME
18
AFFICHER "Combien de groupes d'allumettes voulez vous mettre ?"
19
LIRE nt
20
POUR i ALLANT_DE 0 A nt-1
21
DEBUT_POUR
22
AFFICHER "Combien d'allumettes voulez vous pour le groupe "
23
j PREND_LA_VALEUR i+1
24
AFFICHER j
25
AFFICHER " ?"
26
LIRE al[i]
27
t PREND_LA_VALEUR t+al[i]
28
SI (al[i]%4==0) ALORS
29
DEBUT_SI
30
n0 PREND_LA_VALEUR (n0+1)%2
31
FIN_SI
32
SI (al[i]%4==1) ALORS
33
DEBUT_SI
34
n1 PREND_LA_VALEUR (n1+1)%2
35
FIN_SI
36
SI (al[i]%4==2) ALORS
37
DEBUT_SI
38
n2 PREND_LA_VALEUR (n2+1)%2
39
FIN_SI
40
SI (al[i]%4==3) ALORS
41
DEBUT_SI
42
n3 PREND_LA_VALEUR (n3+1)%2
43
FIN_SI
44
FIN_POUR
45
AFFICHER "Voulez vous commencer ?(1 pour oui, 0 pour non)"
46
LIRE J
47
J PREND_LA_VALEUR round(J%2)
48
TANT_QUE (t>0) FAIRE
49
DEBUT_TANT_QUE
50
POUR i ALLANT_DE 0 A nt-1
51
DEBUT_POUR
52
AFFICHER "Ligne "
53
k PREND_LA_VALEUR i+1
54
AFFICHER k
55
AFFICHER ": "
56
POUR j ALLANT_DE 1 A al[i]
57
DEBUT_POUR
58
AFFICHER "I"
59
FIN_POUR
60
AFFICHER " "
61
FIN_POUR
62
SI (J==1) ALORS
63
DEBUT_SI
64
AFFICHER "A quel groupe voulez vous retirer des allumettes ?"
65
LIRE ng
66
AFFICHER "Combien d'allumettes voulez vous retirer a ce groupe ?"
67
LIRE n
68
FIN_SI
69
SINON
70
DEBUT_SINON
71
SI ((n1==0) ET (n2==0) ET (n3==1)) ALORS
72
DEBUT_SI
73
n PREND_LA_VALEUR 3
74
nr PREND_LA_VALEUR 3
75
FIN_SI
76
SI ((n1==0) ET (n2==1) ET (n3==0)) ALORS
77
DEBUT_SI
78
n PREND_LA_VALEUR 2
79
nr PREND_LA_VALEUR 2
80
FIN_SI
81
SI ((n1==0) ET (n2==1) ET (n3==1)) ALORS
82
DEBUT_SI
83
n PREND_LA_VALEUR 1
84
nr PREND_LA_VALEUR 3
85
FIN_SI
86
SI ((n1==1) ET (n2==0) ET (n3==0)) ALORS
87
DEBUT_SI
88
n PREND_LA_VALEUR 1
89
nr PREND_LA_VALEUR 1
90
FIN_SI
91
SI ((n1==1) ET (n2==0) ET (n3==1)) ALORS
92
DEBUT_SI
93
n PREND_LA_VALEUR 2
94
nr PREND_LA_VALEUR 3
95
FIN_SI
96
SI ((n1==1) ET (n2==1) ET (n3==0)) ALORS
97
DEBUT_SI
98
n PREND_LA_VALEUR 1
99
nr PREND_LA_VALEUR 2
100
FIN_SI
101
SI (n1+n2+n3==0 OU n1+n2+n3==3) ALORS
102
DEBUT_SI
103
n PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,3)
104
SI (n>=ALGOBOX_MAXIMUM(al,0,nt-1)) ALORS
105
DEBUT_SI
106
n PREND_LA_VALEUR ALGOBOX_MAXIMUM(al,0,nt-1)%4
107
FIN_SI
108
ar PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,nt-1)
109
TANT_QUE (al[ar]%4<n) FAIRE
110
DEBUT_TANT_QUE
111
ar PREND_LA_VALEUR ALGOBOX_ALEA_ENT(0,nt-1)
112
FIN_TANT_QUE
113
nr PREND_LA_VALEUR al[ar]%4
114
FIN_SI
115
POUR i ALLANT_DE 0 A nt-1
116
DEBUT_POUR
117
SI (al[i]%4==nr ET al[i]>0) ALORS
118
DEBUT_SI
119
ng PREND_LA_VALEUR i+1
120
FIN_SI
121
FIN_POUR
122
FIN_SINON
123
SI (((n-1)*(n-2)*(n-3)==0) ET (n<=al[ng-1])) ALORS
124
DEBUT_SI
125
al[ng-1] PREND_LA_VALEUR al[ng-1]-n
126
t PREND_LA_VALEUR t-n
127
SI (n==1) ALORS
128
DEBUT_SI
129
AFFICHER n
130
AFFICHER " allumette a été prise dans le groupe "
131
AFFICHER ng
132
FIN_SI
133
SINON
134
DEBUT_SINON
135
AFFICHER n
136
AFFICHER " allumettes ont été prises dans le groupe "
137
AFFICHER ng
138
FIN_SINON
139
J PREND_LA_VALEUR (J+1)%2
140
n0 PREND_LA_VALEUR 0
141
n1 PREND_LA_VALEUR 0
142
n2 PREND_LA_VALEUR 0
143
n3 PREND_LA_VALEUR 0
144
POUR i ALLANT_DE 0 A nt-1
145
DEBUT_POUR
146
SI (al[i]%4==0) ALORS
147
DEBUT_SI
148
n0 PREND_LA_VALEUR (n0+1)%2
149
FIN_SI
150
SI (al[i]%4==1) ALORS
151
DEBUT_SI
152
n1 PREND_LA_VALEUR (n1+1)%2
153
FIN_SI
154
SI (al[i]%4==2) ALORS
155
DEBUT_SI
156
n2 PREND_LA_VALEUR (n2+1)%2
157
FIN_SI
158
SI (al[i]%4==3) ALORS
159
DEBUT_SI
160
n3 PREND_LA_VALEUR (n3+1)%2
161
FIN_SI
162
FIN_POUR
163
FIN_SI
164
SINON
165
DEBUT_SINON
166
AFFICHER "Vous ne pouvez prendre qu'un nombre entier entre 1 et 3 allumettes."
167
AFFICHER "De plus, vous ne pouvez pas prendre plus d'allumettes que ce que contient le groupe."
168
FIN_SINON
169
FIN_TANT_QUE
170
SI (J==0) ALORS
171
DEBUT_SI
172
AFFICHER "Vous avez gagné \\(^_^)/"
173
FIN_SI
174
SINON
175
DEBUT_SINON
176
AFFICHER "Vous avez perdu (;_;)"
177
FIN_SINON
178
FIN_ALGORITHME