diff --git a/tpDebug.ts b/tpDebug.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2e9eff4bed7f1d691ffee920e7d0208adbee08b9
--- /dev/null
+++ b/tpDebug.ts
@@ -0,0 +1,14 @@
+function deb2(x:number, y:number): void {
+    const tmp = y;
+    y =x;
+    x = tmp;
+    console.log(x, y);
+}
+
+let x =  10;
+let y = 20;
+deb2(x, y);
+console.log(x, y); 
+
+/* Les valeurs ne sont pas modifiés car les variables x et y sont passées par valeur et non par référence.
+Donc ils gardent leur valeur initiale.  On aurait pu appeler la function echangeSansEffet */
\ No newline at end of file
diff --git a/tpDebug4.ts b/tpDebug4.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1e03aa950db2bca42626f87a559d92edb94a7faa
--- /dev/null
+++ b/tpDebug4.ts
@@ -0,0 +1,15 @@
+function deb3(xy: number[]):void {
+    let tmp= xy[0];
+    xy[0]= xy[1];
+    xy[1]= tmp;
+    console.log(xy);
+    xy = [100, 200];
+}
+let xy= [10, 20];
+deb3(xy);
+console.log(xy); 
+
+/* 1) Sa fonctionne car on a utilisé un tableau
+et sa modis fie les valeurs de xy dans la fonction deb3 */
+
+/* 2) Sa crée un nouveau tableau dans deb3 et sa ne modifis pas la valeur de xy */
\ No newline at end of file
diff --git a/tpDebug5.ts b/tpDebug5.ts
new file mode 100644
index 0000000000000000000000000000000000000000..06fe325ff8728f6036f29c82d7f0a38fb0d73279
--- /dev/null
+++ b/tpDebug5.ts
@@ -0,0 +1,27 @@
+let j = 10;
+deb4();
+console.log(j);
+
+function deb4(): number {
+    let j = 25;
+    for (let i = 0; j < 10; i++) {
+        let j = 2 * i;
+        console.log(j);
+    }
+    return j;
+}
+
+/*
+
+j = 10.
+À l’entrée de deb4() :
+
+Nouvelle variable j = 25 
+La boucle for (let i = 0; j < 10; i++) ne s’exécute pas, car 25 < 10 est faux.
+Sortie de la fonction :
+
+Retourne 25, mais cette valeur n’est pas affichée.
+Le j global reste à 10.
+Après l’appel de deb4() :
+
+console.log(j) affiche 10. */
\ No newline at end of file
diff --git a/tpDebug6.ts b/tpDebug6.ts
new file mode 100644
index 0000000000000000000000000000000000000000..035535aec7bfbf7dc43f81bb2ab44d5ff187b32b
--- /dev/null
+++ b/tpDebug6.ts
@@ -0,0 +1,10 @@
+let tab1 = [1,2,3];
+let tab2 = [...tab1];
+
+tab1[1] = 5;
+
+console.log(tab1, tab2);
+
+/* 2) tab1 et tab2 sont des tableaux différents donc modifier tab1 ne modifie pas tab2 
+Dans la ligne 2 de ce programme on crée un nouveau tableau tab2 qui est une copie de tab1
+Alors que dans le programme précédent tab2 pointait vers tab1 donc modifier tab1 modifiait tab2 */
\ No newline at end of file
diff --git a/tpDebug7.ts b/tpDebug7.ts
new file mode 100644
index 0000000000000000000000000000000000000000..047c18c72ced96095cd502415ba3e37358df09c6
--- /dev/null
+++ b/tpDebug7.ts
@@ -0,0 +1,10 @@
+deb7(5,3);
+
+function deb7(x: number, y: number): number {
+    let val = 0;
+
+    for (let i = 0; i < y; i++) {
+        val += x;
+    }
+    return val;
+}