Skip to content
Snippets Groups Projects
Commit 01c7f9e9 authored by paul.albuquer's avatar paul.albuquer
Browse files

corrected typos slides cours_8

parent 407e099d
No related branches found
No related tags found
No related merge requests found
......@@ -175,7 +175,7 @@ bool board[n][n];
```C
// Pour chaque ligne placer la reine sur toutes les colonnes
// Et compter les solutions
// et compter les solutions
void nbr_solutions(board, coloumn, counter);
// Placer la reine à li, co et rendre inaccessible devant
void placer_devant(board_ini, board, li, co);
......@@ -190,7 +190,7 @@ void placer_devant(board_ini, board, li, co);
nbr_solutions(board, column, counter)
// pour chaque ligne
// si la case libre
// si clumn < n - 1
// si column < n - 1
// créer un nouveau board, poser une reine
// et mettre à jour le tableau
// nbr_solutions(board, column, counter)
......@@ -209,7 +209,7 @@ placer_devant(old_board, board, ligne, colonne)
// board = copy(board);
// board est occupé à ligne/colonne
// toutes les cases des colonnes
// suivantes sont mises à jour
// suivantes sont mises à jour
```
# Le code du problème des 8 reines (4/N)
......@@ -228,8 +228,8 @@ void nb_sol(int n, bool board_ini[n][n], int co, int *ptr_cpt) {
for (int li = 0; li < n; li++) {
if (board_ini[li][co]) {
if (co < n - 1) {
bool board[n][n]; // alocation à chaque
nouvelle tentative
bool board[n][n]; // allocation
// à chaque nouvelle tentative
prises_devant(n, board_ini, board, li, co);
nb_sol(n, board, co + 1, ptr_cpt);
} else {
......@@ -278,7 +278,7 @@ void prises_devant(
* de type `LIFO` (*Last in first out*).
![Une pile où on ajoute A, puis B avant de les retirer. Souce:
![Une pile où on ajoute A, puis B avant de les retirer. Source:
[Wikipedia](https://upload.wikimedia.org/wikipedia/commons/e/e1/Stack_%28data_structure%29_LIFO.svg)](figs/Stack.svg){width=70%}
## Des exemples de la vraie vie
......@@ -296,13 +296,13 @@ void prises_devant(
. . .
1. Empiler (push), ajouter un élément sur la pile,
2. Dépiler (pop), retirer l'élément du sommet de la pile et le retrouner,
3. Liste vide? (is_empty?)
1. Empiler (push): ajouter un élément sur la pile.
2. Dépiler (pop): retirer l'élément du sommet de la pile et le retrouner.
3. Liste vide? (is_empty?).
. . .
4. Jeter un oeil (peek), retourner l'élément du sommet de la pile (sans le dépiler),
4. Jeter un oeil (peek): retourner l'élément du sommet de la pile (sans le dépiler).
5. Nombre d'éléments (length).
## Comment faire les 4,5 à partir de 1 à 3?
......@@ -310,7 +310,7 @@ void prises_devant(
. . .
4. Dépiler l'élément, le copier, puis l'empiler à nouveau.
5. Dépiler jusqu'à ce que la pile soit vide puis empiler à nouveau.
5. Dépiler jusqu'à ce que la pile soit vide, puis empiler à nouveau.
. . .
......@@ -323,7 +323,7 @@ mémoire).
## Implémentation
* Jusqu'ici on a pas du tout parlé d'implémentation (d'où le nom de structure
* Jusqu'ici on n'a pas du tout parlé d'implémentation (d'où le nom de structure
abstraite).
* Pas de choix unique d'implémentation.
......@@ -331,7 +331,7 @@ mémoire).
. . .
Et oui vous avez deviner: un tableau!
Et oui vous avez deviné: un tableau!
## La structure: de quoi avons-nous besoin (pile de taille fixe)?
......@@ -412,13 +412,13 @@ int stack_peek(stack *s) {
# Gestion d'erreur, level 0
* Il y a plusieurs façon de traiter les erreur:
* Rien faire (laisser la responsabilité à l'utilisateur).
* Ne rien faire (laisser la responsabilité à l'utilisateur).
* Faire paniquer le programme (il plante plus ou moins violemment).
* Utiliser des codes d'erreurs.
## La panique
* En C on a les `assert()` pour faire paniquer un programme.
* En C, on a les `assert()` pour faire paniquer un programme.
# Assertions (1/3)
......@@ -433,7 +433,7 @@ void assert(int expression);
- Macro permettant de tester une condition lors de l'exécution d'un programme:
- Si `expression == 0`{.C} (condition fausse), `assert()`{.C} affiche un message d'erreur sur `stderr`{.C} et termine l'exécution du programme.
- Sinon l'exécution se poursuit normalement.
- Peuvent être désactivés avec `-DNDEBUG` (équivalent à `#define
- Peuvent être désactivés à la compilation avec `-DNDEBUG` (équivalent à `#define
NDEBUG`)
## À quoi ça sert?
......@@ -473,7 +473,7 @@ int stack_peek(stack *s) {
- Vérification de la validité des pointeurs (typiquement `!= NULL`{.C}).
- Vérification du domaine des indices (dépassement de tableau).
## Bug vs erreur de *runtime*
## Bug vs. erreur de *runtime*
- Les assertions sont là pour détecter les bugs (erreurs d'implémentation).
- Les assertions ne sont pas là pour gérer les problèmes externes au programme (allocation mémoire qui échoue, mauvais paramètre d'entrée passé par l'utilisateur, ...).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment