diff --git a/Algorithmique/Exercices/algorithmes.md b/Algorithmique/Exercices/algorithmes.md
index e40e98d2f1b1f687e20fa2c26cf7d203e4d1f00a..99e8d661bc95b2544e376e13f93fac028045e5da 100644
--- a/Algorithmique/Exercices/algorithmes.md
+++ b/Algorithmique/Exercices/algorithmes.md
@@ -3,3 +3,29 @@
 ## Exercice 1
 
 Ecrivez en C un programme complet, sans fonction, qui imprime tous les nombres premiers plus petit que 1000.
+
+## Exerice 2
+
+Écrire un programme qui demande à l'utilisateur de taper la largeur et la longueur d'un champ et qui en affiche le périmètre et la surface.
+
+## Exercice 3
+
+Écrire un programme qui demande à l'utilisateur de taper 5 réels et qui affiche leur moyenne. Le programme ne devra utiliser que 2 variables.
+
+
+## Exercice 4
+
+Soit le code suivant :
+
+```C
+for(int i=0; i<100; i++){
+  printf("%d\n", i);
+}
+```
+
+Transformer ce code en utilisant une boucle `while`.
+
+## Exercice 5
+
+Ecrire une fonction `bancomat` qui prend en paramètre une somme d'argent en nombre entier multiple de 10 et affiche à l'écran comment la diviser en billets de 1000, 500, 200, 100, 50, 20 et 10.
+
diff --git a/Algorithmique/Exercices/algorithmes.pdf b/Algorithmique/Exercices/algorithmes.pdf
index 3f5ebfdfebb69df047e20bcfff962d01a8c8dd6d..a8a171b95f8aa0292d38b1e2382c129e3c7edc50 100644
Binary files a/Algorithmique/Exercices/algorithmes.pdf and b/Algorithmique/Exercices/algorithmes.pdf differ
diff --git a/Algorithmique/Exercices/pointeurs.md b/Algorithmique/Exercices/pointeurs.md
index 0262b1fe4bd4eda7031702361df0c77a67884463..58604a7d9c1a25b468804fc2f565f515b9367308 100644
--- a/Algorithmique/Exercices/pointeurs.md
+++ b/Algorithmique/Exercices/pointeurs.md
@@ -25,3 +25,22 @@ point_t init_point_2(int v1, int v2);
 qui initialise un point et le retourne.
 
 Ecrivez un programme principal qui utilise ces deux fonctions;
+
+## Exercice 2
+
+Ecrire une fonction `divide` qui prend en paramètres deux nombres entiers `a` et `b` et un pointeur sur un nombre entier `res` et retourne un nombre entier.
+
+La fonction calcule le résultat de la divison entière `a/b` et stocke le résultat dans `res`. Si `b!=0`, la fonction retourne 0, sinon elle retourne 1 et la valeur stockée dans `res` est indéfinie.
+
+## Exercice 3
+
+Écrire une fonction swap qui a comme paramètres deux pointeurs vers des entiers et qui échange le contenu des deux entiers pointés. Ecrire un programme qui échange le contenu de deux entiers a et b en appelant cette fonction.
+
+## Exercice 4
+
+Écrire une fonction qui a comme paramètres un tableau d'entiers de taille quelconque, la taille du tableau, et 2 pointeurs vers des entiers min et max. La fonction doit écrire dans les entiers pointés par min et max respectivement les plus petits et les plus grands entiers du tableau.
+
+# Exercice 5
+
+Écrire une fonction qui a en paramètre un tableau de nombres entiers et qui renvoie le nombre d'occurrences du nombre 10. Cette fonction devra parcourir le tableau en utilisant un pointeur. 
+
diff --git a/Algorithmique/Exercices/pointeurs.pdf b/Algorithmique/Exercices/pointeurs.pdf
index 2f3360bf9135253fd6fe61c67d229cc714cca98a..849ebd49e87f4d439342d17fda80b99829fab330 100644
Binary files a/Algorithmique/Exercices/pointeurs.pdf and b/Algorithmique/Exercices/pointeurs.pdf differ
diff --git a/Algorithmique/Exercices/recursivite.md b/Algorithmique/Exercices/recursivite.md
index 0c3c5c7c39b3f7a1834c0201e0ac96a799890847..49318f51250b2f123b4f0cee0dca8448e7c5bf17 100644
--- a/Algorithmique/Exercices/recursivite.md
+++ b/Algorithmique/Exercices/recursivite.md
@@ -19,3 +19,19 @@ Que retourne `f(3, 5)` ? Quelle opération effectue cette fonction ? Expliquez v
 ## Exercice 2
 
 Ecrire une fonction récursive `count`, qui prend en entrée un caractère `c` et une chaîne de caractères `str` et retourne le nombre d'occurence de `c` dans `str`; 
+
+## Exercice 3
+
+Réecrire la fonction suivante sous forme récursive :
+
+```C
+int somme(int a){
+  int res = 0;
+  for(int i=0; i<a; i++){
+    res += i;
+  }
+  return res;
+}
+```
+
+
diff --git a/Algorithmique/Exercices/recursivite.pdf b/Algorithmique/Exercices/recursivite.pdf
index 75f20587b0f793d786e844f21558d24aa811b552..ae6404e58444add3fa66ec3c23d4e205cba40423 100644
Binary files a/Algorithmique/Exercices/recursivite.pdf and b/Algorithmique/Exercices/recursivite.pdf differ
diff --git a/Algorithmique/Exercices/str.md b/Algorithmique/Exercices/str.md
new file mode 100644
index 0000000000000000000000000000000000000000..d86c2729e563a845aae63a6db079b8d2e0298857
--- /dev/null
+++ b/Algorithmique/Exercices/str.md
@@ -0,0 +1,8 @@
+
+## Exercice 1
+
+Écrire une fonction qui a en paramètre une chaîne de caractères et qui renvoie le nombre d'occurrences de la lettre 'A'.
+
+## Execice 2
+
+Ecrire une fonction donc la signature est `int palindrome(char* mot)` qui retourne 1 si la chaîne de caractères passé en paramètre est un palindrome, 0 sinon.
diff --git a/Algorithmique/Exercices/str.pdf b/Algorithmique/Exercices/str.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..14425ce51468578a87e9fe15376ec3839f580b7c
Binary files /dev/null and b/Algorithmique/Exercices/str.pdf differ
diff --git a/Algorithmique/Exercices/tableaux.md b/Algorithmique/Exercices/tableaux.md
index d8a6a468eeefb57e69926a0aa8e0a2ae5f6bb1bb..7874fb03765466e3642922a03a3ed1a3db446ad8 100644
--- a/Algorithmique/Exercices/tableaux.md
+++ b/Algorithmique/Exercices/tableaux.md
@@ -1,6 +1,10 @@
 # Tableaux
 
-## Exercice 1
+## Exercice 2
+
+Écrire une fonction qui a en paramètre un tableau de nombres entiers et qui renvoie le nombre d'occurrences du nombre 10. Cette fonction devra parcourir le tableau sans utiliser de pointeur. 
+
+## Exercice 3
 
 Ecrivez en C une fonction `fusion` qui prend en paramètre trois tableaux à 1 dimension
 `tab1`, `tab2` et `res`. `tab1` et `tab2` sont de taille n (passé en paramètre) tandis que `res` est de taille 2n.
@@ -14,7 +18,7 @@ tab2 : -2, -1, 4, 12
 
 res : -2, -1, 1, 3, 4, 5, 10, 12
 
-## Exercice 2
+## Exercice 4
 
 Ecire une fonction `initialise` qui prend un tableau à deux dimensions d'entiers en paramètre et l'initialise de la façon suivante. L'exemple a 6 lignes et 5 colonnes, mais la fonction doit fonctionner avec n'importe quelle taille de tableau.
 
@@ -29,7 +33,7 @@ Ecire une fonction `initialise` qui prend un tableau à deux dimensions d'entier
 | 10 | 11 | 11 | 12 | 13 |
 
 
-## Exercice 3
+## Exercice 5
 
 Ecrire une fonction `initialise` qui initialise un tableau à deux dimensions d'entiers en mettant dans chaque case la somme des distances aux bords verticaux et horizontaux. On prendra dans chaun des cas (vertical et horizontal) le bord le plus proche. 
 
@@ -43,11 +47,11 @@ Il est interdit d'utiliser des fonctions prédéfinies comme `min` ou `max`.
 | 1 | 2 | 3 | 4 | 5 | 5 | 4 | 3 | 2 | 1 |
 | 0 | 1 | 2 | 3 | 4 | 4 | 3 | 2 | 1 | 0 |
 
-## Exercice 4
+## Exercice 6
 
 On considère des tableaux à deux dimensions contenant des -1 et des 1.
 
-Ecrire une fonction `update` qui prend en paramètre un tableau `tab_in` à deux dimensions contenant des -1 et des 1. Cette fonction alloue un tableau dynamique à deux dimensions `tab_out` de même taille et le remplit de la façon suivante avant de le retourner :
+Ecrire une fonction `update` qui prend en paramètre un tableau `tab_in` à deux dimensions contenant des -1 et des 1 et un tableau `tab_out` de même taille et le remplit de la façon suivante :
 
   - L'élément d'index `(i, j)` de `tab_out` prend la valeur :
     - majoritaire des 8 éléments voisins (haut, bas, gauche, droite plus les 4 diagonales) de l'élément d'index `(i, j)` de `tab_in` s'il y a une majorité;
diff --git a/Algorithmique/Exercices/tableaux.pdf b/Algorithmique/Exercices/tableaux.pdf
index 652f2eea9c3867c77507aaf7b86bd9514c95f83b..e751947fb723ad08591b59fb95ad8dd96d121612 100644
Binary files a/Algorithmique/Exercices/tableaux.pdf and b/Algorithmique/Exercices/tableaux.pdf differ
diff --git a/Algorithmique/Exercices/tris.md b/Algorithmique/Exercices/tris.md
index 3c272905b115381e2b579fe959bcea081fc22729..0db9df8415b84c20720caceeb2e142438442d6fd 100644
--- a/Algorithmique/Exercices/tris.md
+++ b/Algorithmique/Exercices/tris.md
@@ -2,7 +2,7 @@
 
 ## Exercice 1
 
-Appliquer le tri par sélection au tableau suivant en inscrivant sur chaque ligne le résultat d'une étape complète du tri :
+Appliquer le tri par sélection, insertion et à bulle au tableau suivant en inscrivant sur chaque ligne le résultat d'une étape complète du tri :
 
 |   |   |   |   |   |   |   |   |
 |---|---|---|---|---|---|---|---|
@@ -16,4 +16,4 @@ Appliquer le tri par sélection au tableau suivant en inscrivant sur chaque lign
 |   |   |   |   |   |   |   |   |
 |   |   |   |   |   |   |   |   |
 
-Quelle est la complexité du tri par sélection ?
+Quelle est la complexité de ces tris ?
diff --git a/Algorithmique/Exercices/tris.pdf b/Algorithmique/Exercices/tris.pdf
index 54166e0e32226e4c1b982b683d7d5dcd6b693c58..12e4be989af667f6f0c17b068c18e58fe1d46d5c 100644
Binary files a/Algorithmique/Exercices/tris.pdf and b/Algorithmique/Exercices/tris.pdf differ