Révision
Objectifs
L'évaluation se portera sur les critères suivants :
- Algorithme
- Exécuter un organigramme.
- Exécuter un pseudo-code.
- Déduire ce qu'un algorithme fait.
- Comparer grâce à la complexité.
- Type
- Évaluer une expression.
- Déterminer le type d'une expression.
- Manipuler les listes.
- Tri
- Appliquer un algorithme de tri.
- Expliquer un algorithme de tri.
Note | 1 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5 | 5.5 | 6 |
---|---|---|---|---|---|---|---|---|---|---|
Nombre de critères validés | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Aides
- Revoir les Kahoot!
- Terminer les exercices des semaines précédentes.
- Support de cours complémentaires :
Organigramme
- Quels sont les résultats des instances suivantes ?
- liste = [9, 3]
- liste = []
- liste = [2, 14, 5]
- Que fait l'algorithme ?
- Écrire son pseudocode.
- Quelle est sa complexité en temps au pire cas ?
Solution
- Les résultats des instances sont :
- liste = [18, 6]
- liste = []
- liste = [4, 28, 10]
- L'algorithme double chaque élément de la liste.
- Pseudo-code :
FONCTION double(liste)
i ← 0
TANT QUE i < liste.taille
liste[i] ← liste[i] * 2
i ← i + 1
FIN TANT QUE
RETOURNER liste
FIN FONCTION - La complexité en temps au pire cas est de O(n), car l'algorithme parcourt tous les éléments de la liste avec une boucle
TANT QUE
.
Pseudo-code
FONCTION mystère(liste)
max ← liste[0]
i ← 1
TANT QUE i < liste.taille
SI max < liste[i]
max ← liste[i]
FIN SI
i ← i + 1
FIN TANT QUE
RETOURNER max
FIN FONCTION
- Que retourne l'instance mystère([7]) ?
- Que retourne l'instance mystère([6, 3, 14]) ?
- Que retourne l'instance mystère([15, 3, 3, 7]) ?
- Que fait l'algorithme mystère ?
- Dessiner l'organigramme de l'algorithme mystère.
- Quelle est sa complexité en temps au pire cas ?
- Modifier l'algorithme pour qu'il retourne le plus petit nombre de la liste en entrée.
Solution
- 7
- 14
- 15
- L'algorithme mystère retourne le plus grand nombre de la liste en entrée.
- Organigramme :
- La complexité en temps au pire cas est de O(n), car l'algorithme parcourt tous les éléments de la liste avec une boucle
TANT QUE
. - Pseudo-code :
FONCTION mystère(liste)
min ← liste[0]
i ← 1
TANT QUE i < liste.taille
SI min > liste[i]
min ← liste[i]
FIN SI
i ← i + 1
FIN TANT QUE
RETOURNER min
FIN FONCTION
Tri
5 | 1 | 4 | 3 | 2 | 0 | 9 | 7 |
Trier la liste de nombre dans l'ordre croissante en utilisant l'algorithme de tri indiqué :
- Tri par insertion
- Tri par sélection
- Tri fusion
- Tri rapide en choisissant le pivot comme étant le premier élément de la liste.
Solution : tri par insertion
5 | 1 | 4 | 3 | 2 | 0 | 9 | 7 |
---|---|---|---|---|---|---|---|
1 | 5 | 4 | 3 | 2 | 0 | 9 | 7 |
1 | 4 | 5 | 3 | 2 | 0 | 9 | 7 |
1 | 4 | 3 | 5 | 2 | 0 | 9 | 7 |
1 | 3 | 4 | 5 | 2 | 0 | 9 | 7 |
1 | 3 | 4 | 2 | 5 | 0 | 9 | 7 |
1 | 3 | 2 | 4 | 5 | 0 | 9 | 7 |
1 | 2 | 3 | 4 | 5 | 0 | 9 | 7 |
1 | 2 | 3 | 4 | 0 | 5 | 9 | 7 |
1 | 2 | 3 | 0 | 4 | 5 | 9 | 7 |
1 | 2 | 0 | 3 | 4 | 5 | 9 | 7 |
1 | 0 | 2 | 3 | 4 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 9 | 9 |
Solution : tri par sélection
5 | 1 | 4 | 3 | 2 | 0 | 9 | 7 |
---|---|---|---|---|---|---|---|
0 | 1 | 4 | 3 | 2 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 7 | 9 |
Solution : tri fusion
| |||||||||||||||
|
| ||||||||||||||
|
|
|
| ||||||||||||
|
|
|
|
|
|
|
| ||||||||
|
|
|
| ||||||||||||
|
| ||||||||||||||
|
Solution : tri rapide
5 | 1 | 4 | 3 | 2 | 0 | 9 | 7 |
---|---|---|---|---|---|---|---|
5 | 1 | 4 | 3 | 2 | 0 | 9 | 7 |
0 | 1 | 4 | 3 | 2 | 5 | 9 | 7 |
0 | 1 | 4 | 3 | 2 | 5 | 9 | 7 |
0 | 1 | 4 | 3 | 2 | 5 | 9 | 7 |
0 | 1 | 4 | 3 | 2 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 9 | 7 |
0 | 1 | 2 | 3 | 4 | 5 | 7 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 7 | 9 |
En gras, les pivots. En souligné, les éléments déjà triés.
Algorithme
Lesquels des éléments suivants sont des algorithmes ?
- Une recette de cuisine
- Le tissage
- Le tricot
- La résolution d'un Rubik's Cube
- Le diagnostic infirmier (d'une maladie)
- Les instructions pour assembler un meuble
- La tactique dans un sport (football, hockey, etc.)
Solution
Ce sont tous des algorithmes, car ils décrivent une suite d'étapes à suivre pour atteindre un objectif : https://fr.wikipedia.org/wiki/Algorithme#Algorithmes_dans_la_vie_quotidienne
Type
Quel sont le type et la valeur des variables suivantes ?
- a = "12"
- b = 9.81
- c = true
- d = 3
- e = ["bleu", "rouge", "vert", "jaune", "orange"]
- f = [45, 12, 3, 9, 2]
- g = 5 > 3
- h = a + e[d]
- i = f[f[4]]
- j = e[2] + e[5]
- k = f[2] + f[0] / d
- l = f[0] < f[3]
Solution : type
- a : string
- b : float
- c : boolean
- d : integer
- e : list (liste de string)
- f : list (liste d'entiers)
- g : boolean
- h : string
- i : integer
- j : erreur
- k : float
- l : boolean
Solution : valeur
- a : "12"
- b : 9.81
- c : true
- d : 3
- e : ["bleu", "rouge", "vert", "jaune", "orange"]
- f : [47, 12, 3, 9, 2]
- g : true
- h : "12jaune"
- i : 3
- j : erreur
- k : 18.0
- l : false