Skip to content
Snippets Groups Projects
Commit e4e1f84b authored by BARETH Aymeric's avatar BARETH Aymeric
Browse files

Rendu du TD debug

parent 8ae3b509
No related branches found
No related tags found
No related merge requests found
debug.ts 0 → 100644
function deb1(): number {
let j = 200;
let tab = new Array<number>();
for (let i = 0; i < 10; i++) {
j -= 10;
tab[i] = j;
}
return j;
}
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);
//20 10 puis 10 20
//nom parlant : échange de valeurs
//ça ne fonctionne pas car les valeurs de x et y sont échangées SEULEMENT dans la fonction elle-meme, les véritables valeurs des variables x et y restent comme avant
function deb3(xy: number[]): void {
let tmp = xy[0];
xy[0] = xy[1];
xy[1] = tmp;
xy = [100, 200];
console.log(xy);
}
let xy = [10, 20];
deb3(xy);
console.log(xy);
//vu qu'on modifie un tableau directement et pas des valeurs, le tableau se fait bien modifier meme en dehors de la fonction
//le dernier console.log affiche quand meme [20,10] car on a modifié la variable de manière locale seulement pour [100,200]
let j = 10;
deb4();
console.log(j);
function deb4(): number {
let j = 25;
for (let i = 0; i < 10; i++) {
let j = 2 * i;
console.log(j);
}
return j;
}
//la variable j en dehors de la fonction et celle à l'intérieur de deb4() ne sont pas les memes,
//la première sera donc toujours égale à 10 alors que celle de la fonction pourra prendre n'importe quelle valeur paire de 0 (inclus) à 18
let tab1 = [1, 2, 3];
let tab2 = tab1;
tab1[1] = 5;
console.log(tab1, tab2);
//les deux tableaux ont désormais comme deuxième valeur 5, modifier un tableau revient à modifier les deux
let tab1bis = [1, 2, 3];
let tab2bis = [...tab1bis]; // Copie du tableau
tab1bis[1] = 5;
console.log(tab1bis, tab2bis);
//maintenant, on n'a que modifié le premier tableau
// dans le premier cas, dans les mémoires les deux tableaux pointaient vers le meme tableau, alors que dans le deuxième cas on a créé une simple copie du tableau, donc pas le meme
multiplication(3, 5);
/*function multiplication(x: number, y: number): number {
let val = 0;
for (let i = 0; i < y; i++) {
val += x;
}
return val;
}*/
function multiplication(x: number, y: number): number {
let val = 0;
let absY = Math.abs(y);
for (let i = 0; i < absY; i++) {
val += x;
}
if (y < 0) return -val;
else return val;
}
console.log(multiplication(5, 3)); // résultat = 15
console.log(multiplication(-5, 3)); // -15
console.log(multiplication(5, -3)); // -15
console.log(multiplication(-5, -3)); // 15
console.log(multiplication(0, 0));
console.log(multiplication(5, 3));
console.log(multiplication(3, 5));
console.log(multiplication(-5, -2));
console.log(multiplication(-2, -5));
console.log(multiplication(-74, 2));
console.log(multiplication(-1, 75));
console.log(multiplication(10, -25));
console.log(multiplication(10, -3));
let n = 5;
console.log(factorielle(n));
function factorielle(n: number): number {
if (n < 0) {
console.log("Ne pas rentrer de nombre negatif !");
return 0;
} else {
if (n === 0) {
return 1;
}
let valeur = n * factorielle(n - 1);
return valeur;
}
}
console.log(factorielle(3));
console.log(factorielle(0));
console.log(factorielle(1));
console.log(factorielle(-3));
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment