From d7c99f999cdb1e259c824a87566ef00b5a4cfe31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Bailly?=
 <clement.bailly3@etu.univ-lorraine.fr>
Date: Sat, 29 Mar 2025 19:27:36 +0100
Subject: [PATCH] TD Debug exo7

---
 qualdev/compte_rendu_debug.txt |  4 ++++
 qualdev/qualdev/debug1.ts      | 38 +++++++++++++++++++++++++++++++++-
 2 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/qualdev/compte_rendu_debug.txt b/qualdev/compte_rendu_debug.txt
index 55b504a..42094d4 100644
--- a/qualdev/compte_rendu_debug.txt
+++ b/qualdev/compte_rendu_debug.txt
@@ -17,3 +17,7 @@ j ne marche que dans la fonction.
 
 6) Les indices 1 des deux tableaux ont changé.
 Seul le premier tableau à changer.
+
+7) Le programme renvoie le produit de x et y.
+On regarde la valeur la plus grande et la valeur la plus petite et on met la valeur la plus petite dans la boucle for.
+Le programme ne fonctionne pas avec les chiffres négatifs. 
diff --git a/qualdev/qualdev/debug1.ts b/qualdev/qualdev/debug1.ts
index 5c22fc1..af35e59 100644
--- a/qualdev/qualdev/debug1.ts
+++ b/qualdev/qualdev/debug1.ts
@@ -38,5 +38,41 @@ let tab1= [1,2,3];
 let tab2 = [...tab1];
 
 tab1[1] = 5;
-console.log(tab1,tab2);
+
+produit(3,5);
+
+function produit(x:number,y:number):number{
+    let val = 0;
+    let valMin = Math.abs(x);
+    let valMax = Math.abs(y);
+    let negatif : boolean;
+
+    if (valMin > valMax){
+        let tmp = valMin;
+        valMin = valMax;
+        valMax = tmp;
+    }
+    
+    negatif = (x < 0) !== (y < 0);
+
+    for (let i = 0; i < valMin; i++){
+        val += valMax;
+    }
+    if (negatif){
+        return -val;
+    }
+    return val;
+}
+
+console.log(produit(0,0));
+console.log(produit(5,3));
+console.log(produit(3,5));
+console.log(produit(-5,-2));
+console.log(produit(-2,-5));
+console.log(produit(-74,2));
+console.log(produit(-1,75));
+console.log(produit(10,-25));
+console.log(produit(10,3));
+
+
 
-- 
GitLab