-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexercons-nous!
303 lines (239 loc) · 10.4 KB
/
exercons-nous!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
HEURE
//EXERCICE 1
/* Écrire un algorithme qui va demander à l'utilisateur,
l'heure qu'il est, en lui demandant d'abord l'heure, puis les minutes.
L'algorithme devra ensuite afficher l'heure qu'il sera à la minute suivante.
Nous partons du principe que l'heure saisie par l'utilisateur est valide ! */
```````
let hour = window.prompt("Indiquez l'heure", "");
let minutes = window.prompt("Indiquez les minutes");
function clock(hour, minutes) {
let arr = [];
if(0 <= minutes && minutes < 59) {
arr.push(hour, minutes + 1);
} else if(minutes == 59){
arr.push(hour + 1, 0);
if(hour == 23){
arr.push(0, 0);
}
}
return arr;
}
clock();
console.log(clock(13, 27)); // returns [13, 28]
console.log(clock(13, 59)); // returns [14, 0]
````````
// EXERCICE 2
/* Écrire un algorithme qui va demander à l'utilisateur, l'heure qu'il est,
en lui demandant d'abord l'heure, puis les minutes et enfin les secondes.
L'algorithme devra ensuite afficher l'heure qu'il sera à la seconde suivante.
Nous partons du principe que l'heure saisie par l'utilisateur est valide ! */
`````````
let hour = window.prompt("Indiquez l'heure", "");
let minutes = window.prompt("Indiquez les minutes", "");
let seconds = window.prompt("Indiquez les secondes", "");
function clock(hour, minutes, seconds) {
let arr = [];
if(0 <= seconds && seconds < 59) {
arr.push(hour, minutes, seconds + 1);
} else if(seconds == 59){
arr.push(hour, minutes + 1, 0);
if(minutes == 59){
arr = [];
arr.push((hour + 1), 0, 0);
if(hour == 23){
arr = [];
arr.push(0, 0, 0);
}
}
}
return arr;
}
clock();
console.log(clock(23, 59, 59)); // return [0, 0, 0]
````````
----------------------------------------------------------------------------------------------------------------
REPROGRAPHIE
/* Un magasin de reprographie facture :
0,10 € les dix premières photocopies
0,09 € les vingt suivantes
et 0,08 € au-delà.
Écrivez un algorithme qui demande à l'utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondante. */
````````
let copy = window.prompt("How many copies did you print?", "");
function bill (copy) {
let arr = [];
if(copy <= 10) {
arr.push(copy * 0.1);
} else if(copy <= 30) {
arr.push(copy * 0.09);
} else if(copy > 30) {
arr.push(copy * 0.08);
}
return arr;
}
bill();
console.log(bill(50)); // return [4]
````````
----------------------------------------------------------------------------------------------------------------
IMPOTS
/* Les habitants de Zorglub paient l'impôt selon les règles suivantes :
les hommes de plus de 20 ans paient l'impôt
les femmes paient l'impôt si elles ont entre 18 et 35 ans
les autres ne paient pas d'impôt
Le programme demandera donc l'âge et le sexe du Zorglubien, et se prononcera
donc ensuite sur le fait que l'habitant est imposable ou non. */
`````````
let age = window.prompt("Enter your age", "");
let gender = window.prompt("Enter your gender (m/f)", "");
function tax(age, gender) {
if(age > 20 && gender == "m" || age >= 18 && age <= 35 && gender == "f") {
return console.log("Vous êtes imposable");
}
return console.log("Vous n'êtes pas imposable");
}
tax(17, "f"); // returns "Vous n'êtes pas imposable"
tax(25, "m"); // returns "Vous êtes imposable"
`````````
----------------------------------------------------------------------------------------------------------------
ÉLECTIONS
/*Les élections , obéissent à la règle suivante lorsque l'un des candidats obtient plus de 50% des suffrages, il est élu dès le premier tour.
en cas de deuxième tour, peuvent participer uniquement les candidats ayant obtenu au moins 12,5% des voix au premier tour.
Vous devez écrire un algorithme qui permette la saisie des scores de quatre candidats (A, B, C et D) au premier tour.
Cet algorithme traitera ensuite le candidat A (et uniquement lui), il dira si :
il est élu,
il est battu,
il se trouve en ballottage favorable (il participe au second tour en étant arrivé en tête à l'issue du premier tour)
il se trouve en ballottage défavorable (il participe au second tour sans avoir été en tête au premier tour). */
``````````````
let scoreA = window.prompt("Saisir le score du candidat A", " %");
let scoreB = window.prompt("Saisir le score du candidat B", " %");
let scoreC = window.prompt("Saisir le score du candidat C", " %");
let scoreD = window.prompt("Saisir le score du candidat D", " %");
function election(scoreA, scoreB, scoreC, scoreD) {
if(scoreA > 50){
console.log("Le candidat A est élu.");
} else if(scoreA < 12.5) {
console.log("Le candidat A est battu.");
} else if(scoreA > scoreB && scoreA > scoreC && scoreA > scoreD) {
console.log("Le candidat A passe au second tour en ballotage favorable.")
} else if(scoreA >= 12.5 && scoreA <= 50) {
console.log("Le candidat A passe au second tour en ballotage défavorable.")
}
}
election(13, 16, 15, 15); // returns "Le candidat A passe au second tour en ballotage défavorable."
``````````````
----------------------------------------------------------------------------------------------------------------
ASSURANCE
/* Une compagnie d'assurance automobile propose à ses clients quatre familles de tarifs identifiables par une couleur,
du moins au plus onéreux :
tarif bleu
tarif vert
tarif orange
tarif rouge
Le tarif dépend de la situation du conducteur :
un conducteur de moins de 25 ans et titulaire du permis depuis moins de deux ans, se voit attribuer le tarif rouge,
si toutefois il n'a jamais été responsable d'accident. Sinon, la compagnie refuse de l'assurer.
un conducteur de moins de 25 ans et titulaire du permis depuis plus de deux ans, ou de plus de 25 ans mais titulaire
du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais provoqué d'accident, au tarif rouge pour un accident,
sinon il est refusé.
un conducteur de plus de 25 ans titulaire du permis depuis plus de deux ans bénéficie du tarif vert s'il n'est à l'origine
d'aucun accident et du tarif orange pour un accident, du tarif rouge pour deux accidents, et refusé au-delà
De plus, pour encourager la fidélité des clients acceptés, la compagnie propose un contrat de la couleur immédiatement la plus
avantageuse s'il est entré dans la maison depuis plus de cinq ans. Ainsi, s'il satisfait à cette exigence,
un client normalement "vert" devient "bleu", un client normalement "orange" devient "vert", et le "rouge" devient orange.
Écrire l'algorithme permettant de saisir les données nécessaires et de traiter ce problème. Avant de se lancer à corps perdu
dans cet exercice, on pourra réfléchir un peu et s'apercevoir qu'il est plus simple qu'il n'en a l'air ! */
``````````````
let driver = window.prompt("How old is the driver?", "");
let license = window.prompt("How long have you had your driving license?", "");
let accident = window.prompt("How many accidents have you had?", "");
function coverage(driver, license, accident) {
if(driver < 25 && license < 2) {
if(accident != 0) {
console.log("Refus");
} else {
console.log("Tarif Rouge");
}
} else if(driver < 25 && license > 2 || driver > 25 && license < 2) {
if(accident == 1) {
console.log("Tarif Rouge");
} else if(accident != 0) {
console.log("Refus");
} else {
console.log("Tarif Orange");
}
} else if(driver >= 25 && license > 2) {
if(accident == 1) {
console.log("Tarif Orange");
} else if(accident == 2) {
console.log("Tarif Rouge");
} else if(accident != 0) {
console.log("Refus");
} else {
console.log("Tarif Vert");
}
}
}
coverage(30, 5, 0); // returns "Tarif Vert"
coverage(24, 1, 0); // returns "Tarif Rouge"
coverage(27, 1, 3); // returns "Refus"
````````````````````
----------------------------------------------------------------------------------------------------------------
VÉRIFICATION DE DATE
/* Écrivez un algorithme qui a près avoir demandé un numéro de jour, de mois et d'année à l'utilisateur,
renvoie s'il s'agit ou non d'une date valide.
Il n'est sans doute pas inutile de rappeler rapidement que :
le mois de février compte 28 jours, sauf si l'année est bissextile, auquel cas il en compte 29.
L'année est bissextile si elle est divisible par quatre. Toutefois, les années divisibles par 100 ne sont pas bissextiles,
mais les années divisibles par 400 le sont.
Pour exprimer correctement en pseudo-code l'idée qu'un nombre A est divisible par un nombre B. Il suffit d'indiquer que le
reste de la division entière de A par B est égal à zéro. Cette opération s'appelle le modulo. Nous pouvons donc dire que A
est divisible par B si : Modulo(A,B) = 0
````````````````````
let day = window.prompt("Enter the day", "");
let month = window.prompt("Enter the month", "");
let year = window.prompt("Enter the year", "");
*/
function date(day, month, year) {
if(day > 0 && day <= 31 && month > 0 && month <= 12){
if(month == 4 | month == 6 | month == 9 | month == 11 && day == 31) {
console.log("Date non valide.");
} else if(year % 4 != 0 && day > 28 && month == 2) {
console.log("Date non valide.");
} else {
console.log("Date valide.");
}
}
}
date(31, 11, 2020); // returns "Date non valide."
date(29, 2, 2021); // returns "Date non valide."
date(29, 2, 1984); // returns "Date valide."
````````````````````
STRUCTURE ITÉRATIVE
TANT QUE... FAIRE
// Écrivez un algorithme demandant à l'utilisateur de saisir une évaluation. (note de 1 à 5)
let rating = window.prompt("Donnez une note entre 1 et 5", "");
while(rating < 1 && rating > 5) {
console.log("Donnez une note entre 1 et 5");
}
````````````````````
POUR
/* Nous allons écrire un algorithme qui va demander un entier à l'utilisateur,
puis qui calculera le produit de tous les entiers de 1 à ce nombre et enfin affichera le résultat.*/
function factoriel(nombre) {
for(let i = nombre - 1; i > 0; i--) {
nombre *= i;
}
return nombre;
}
factoriel();
console.log(factoriel(5)); // returns 120
console.log(factoriel(3)); // returns 6
````````````````````
IMBRICATION
Nous allons écrire un algorithme qui demandera à l'utilisateur le nombre de lignes qu'il désire
et affichera les résultats suivant lorsqu'il en sera demandé 6 puis 9.
Attention, il est demandé de contrôler que l'utilisateur saisisse bien une valeur autorisée !
!!! PAS COMPRIS L'EXO 🧑💻
---------------- THE END ----------------