Skip to content
Snippets Groups Projects
Commit b68fbb6f authored by CORONA Nikola's avatar CORONA Nikola
Browse files

TD5 Exercice 4

parent 1293ae91
No related branches found
No related tags found
No related merge requests found
import { multAdd, puissanceMult } from "./MesMaths.ts"; import { multAdd, puissanceMult,creeInitiales, ErreurPuissanceMult } from "./MesMaths.ts";
import { assertEquals } from "jsr:@std/assert/equals"; import { assertEquals } from "jsr:@std/assert/equals";
import { assertThrows } from "jsr:@std/assert/throws";
import { assertAlmostEquals } from "jsr:@std/assert/almost-equals"; import { assertAlmostEquals } from "jsr:@std/assert/almost-equals";
// Exercice 1
Deno.test("cas général", () => { Deno.test("cas général", () => {
assertEquals(multAdd(3, 8), 24); assertEquals(multAdd(3, 8), 24);
}); });
...@@ -14,11 +17,37 @@ Deno.test("multiplication par un nombre négatif", () => { ...@@ -14,11 +17,37 @@ Deno.test("multiplication par un nombre négatif", () => {
Deno.test("multiplication par 2 nombre négatif", () => { Deno.test("multiplication par 2 nombre négatif", () => {
assertEquals(multAdd(-8, -8), 64); assertEquals(multAdd(-8, -8), 64);
}); });
Deno.test("Puissance par un nombre négatif", () => {
assertEquals(puissanceMult(-5, 9), -1953125); //Exercice 2
});
Deno.test("Puissance par un nombre négatif", () => { Deno.test("puissanceMult cas normaux", () => {
assertEquals(puissanceMult(5, -9), -1953125); assertEquals(puissanceMult(2, 3), 8);
assertEquals(puissanceMult(5, 0), 1);
assertEquals(puissanceMult(0, 5), 0);
assertEquals(puissanceMult(-2, 3), -8);
assertEquals(puissanceMult(3, 1), 3);
});
Deno.test("puissanceMult erreur exposant négatif", () => {
assertThrows(
() => puissanceMult(3, -2),
ErreurPuissanceMult,
"L'exposant ne peut pas être négatif."
);
});
Deno.test("puissanceMult erreur exposant non entier", () => {
assertThrows(
() => puissanceMult(2, 3.14),
ErreurPuissanceMult,
"Le second paramètre doit être un entier."
);
});
// Exercice 3
Deno.test("Teste de la fonction creeInitiales avec Nikola Corona", () => {
assertEquals(creeInitiales("corona","nikola"),"CN")
}); });
......
// Exercice 1
export function multAdd(x: number, y: number): number { export function multAdd(x: number, y: number): number {
let resultat = 0; let resultat = 0;
let inf = 0; let inf = 0;
if (y < 0){ if (y < 0) {
y = -y y = -y;
inf = 1 ; inf = 1;
} }
for (let i = 0; i < y; i++) { for (let i = 0; i < y; i++) {
resultat += x; resultat += x;
} }
if (inf === 1 ) return -resultat ; if (inf === 1) return -resultat;
else return resultat; else return resultat;
} }
export function puissanceMult(x: number, y: number): number { // Exercice 2
let val = 1;
let inf = 0; export function puissanceMult(x: number, y: number): number {
if (y < 0){ if (!Number.isInteger(y)) {
y = -y throw new ErreurPuissanceMult("Le second paramètre doit être un entier.");
inf = 1 ; }
if (y < 0) {
throw new ErreurPuissanceMult("L'exposant ne peut pas être négatif.");
} }
let val = 1;
for (let i = 0; i < y; i++) { for (let i = 0; i < y; i++) {
val *= x; val *= x;
} }
if (inf === 1 ) return -val ; return val;
else return val; }
} export class ErreurPuissanceMult extends Error {
constructor(msg: string) {
super(msg);
this.name = "ErreurPuissanceMult";
}
}
// 1) on doit tester pour y negatif car il renvoit 1
// 1) on doit tester pour y negatif car il renvoit 1
const x = 2.1; const x = 2.1;
const y = 3.14; const y = 3.14;
console.log("Number.isInteger(x) =", Number.isInteger(x)); console.log("Number.isInteger(x) =", Number.isInteger(x));
console.log("Number.isInteger(y) =", Number.isInteger(y)); console.log("Number.isInteger(y) =", Number.isInteger(y));
\ No newline at end of file
// Exercice 3
export function creeInitiales(nom: string, prenom: string): string {
return nom[0].toUpperCase() + prenom[0].toUpperCase();
}
console.log(creeInitiales("corona","nikola"))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment