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