diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..1d74e21965c4f858f5f818a270e64e1bfad7d843
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.vscode/
diff --git a/qualdev/compte_rendu.txt b/qualdev/compte_rendu.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/Cararactere.ts b/src/Cararactere.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5f7d5bb0f921871a68bd85185f184cb80f4ee4c4
--- /dev/null
+++ b/src/Cararactere.ts
@@ -0,0 +1,18 @@
+class Caractere {
+    cara: string;
+
+    constructor(cara: string= ''){
+        this.cara= cara; 
+    }
+  }
+
+  function estVoyelle(): boolean{
+    let voy =['a', 'e', 'i', 'o', ]
+    return voy.includes(this.cara);
+  }
+
+class Rectangle{
+    longueur:number;
+    largeur:number;
+    
+}
\ No newline at end of file
diff --git a/src/cercle.ts b/src/cercle.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ed6c0b0f57a3bd7f68b6e0755bb596ec5afd45f0
--- /dev/null
+++ b/src/cercle.ts
@@ -0,0 +1,96 @@
+// Définition de la classe Point
+class Point {
+  x!: number;
+  y!: number;
+}
+
+// Définition de la classe Cercle
+class Cercle {
+  centre!: Point;
+  rayon!: number;
+}
+
+// Définition de la classe Rectangle
+class Rectangle {
+  coinSupGauche!: Point;
+  largeur!: number;
+  hauteur!: number;
+}
+
+// Instanciation d'un objet Cercle
+let centreCercle = new Point();
+centreCercle.x = 150;
+centreCercle.y = 100;
+
+let monCercle = new Cercle();
+monCercle.centre = centreCercle;
+monCercle.rayon = 75;
+
+// Fonction pour vérifier si un point est dans un cercle
+function pointDansCercle(cercle: Cercle, point: Point): boolean {
+  let distance = Math.sqrt(
+    (point.x - cercle.centre.x) ** 2 +
+      (point.y - cercle.centre.y) ** 2,
+  );
+  return distance <= cercle.rayon;
+}
+
+// Fonction pour vérifier si un rectangle est complétement dans un cercle
+function rectangleDansCercle(cercle: Cercle, rectangle: Rectangle): boolean {
+  let coin1: Point = rectangle.coinSupGauche;
+  let coin2: Point = { x: coin1.x + rectangle.largeur, y: coin1.y };
+  let coin3: Point = { x: coin1.x, y: coin1.y + rectangle.hauteur };
+  let coin4: Point = {
+    x: coin1.x + rectangle.largeur,
+    y: coin1.y + rectangle.hauteur,
+  };
+
+  return pointDansCercle(cercle, coin1) && pointDansCercle(cercle, coin2) &&
+    pointDansCercle(cercle, coin3) && pointDansCercle(cercle, coin4);
+}
+
+// Fonction pour vérifier s'il y a chevauchement entre un cercle et un rectangle
+function chevauchement(cercle: Cercle, rectangle: Rectangle): boolean {
+  let coin1: Point = rectangle.coinSupGauche;
+  let coin2: Point = { x: coin1.x + rectangle.largeur, y: coin1.y };
+  let coin3: Point = { x: coin1.x, y: coin1.y + rectangle.hauteur };
+  let coin4: Point = {
+    x: coin1.x + rectangle.largeur,
+    y: coin1.y + rectangle.hauteur,
+  };
+
+  return pointDansCercle(cercle, coin1) || pointDansCercle(cercle, coin2) ||
+    pointDansCercle(cercle, coin3) || pointDansCercle(cercle, coin4);
+}
+
+// Instanciation d'un rectangle
+let coinRectangle = new Point();
+coinRectangle.x = 130;
+coinRectangle.y = 90;
+
+let monRectangle = new Rectangle();
+monRectangle.coinSupGauche = coinRectangle;
+monRectangle.largeur = 30;
+monRectangle.hauteur = 20;
+
+// Test de la fonction pointDansCercle()
+let testPoint = new Point();
+testPoint.x = 140;
+testPoint.y = 100;
+
+console.log(
+  "Le point est dans le cercle ?",
+  pointDansCercle(monCercle, testPoint),
+);
+
+// Test de la fonction rectangleDansCercle()
+console.log(
+  "Le rectangle est entièrement dans le cercle ?",
+  rectangleDansCercle(monCercle, monRectangle),
+);
+
+// Test de la fonction chevauchement()
+console.log(
+  "Le rectangle chevauche-t-il le cercle ?",
+  chevauchement(monCercle, monRectangle),
+);
diff --git a/src/complexe.ts b/src/complexe.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9d60f9c7d923893ea07604ed24bbed8a955fcd2e
--- /dev/null
+++ b/src/complexe.ts
@@ -0,0 +1,3 @@
+class complexe {
+    
+}
\ No newline at end of file
diff --git a/src/personne.ts b/src/personne.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d66524e3c011bc7965fd017c92b4d5804f8ac6c0
--- /dev/null
+++ b/src/personne.ts
@@ -0,0 +1,10 @@
+class Personne {
+    ine: string;
+
+    constructor(ine: string) {
+        this.ine = ine;
+    }
+}
+
+let p = new Personne("123456789");
+p.ine = "987654321";
\ No newline at end of file
diff --git a/src/piste.ts b/src/piste.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9ef8bc0121ffc3ecc52b992d1f41305e3a852468
--- /dev/null
+++ b/src/piste.ts
@@ -0,0 +1,57 @@
+class Piste {
+    private titre: string;
+    private duree: number;
+
+    constructor(titre: string, duree: number) {
+        this.titre = titre;
+        this.duree = duree;
+    }
+
+    getTitre(): string {
+        return this.titre;
+    }
+
+    getDuree(): number {
+        return this.duree;
+    }
+
+    egale(x: Piste): boolean {
+        if ((x.duree === this.getDuree()) && (x.titre === this.getTitre())) {
+            return true
+        }
+        return false;
+    }
+
+    toString(x: Piste): string {
+        return ("Le titre est" + x.titre, "et la durre est" + x.duree);
+
+    }
+}
+
+let p = new Piste("titreeee", 55);
+let g = new Piste("eeeea", 554);
+
+p.egale(g);
+
+class Album {
+    private titre: string;
+    private nbpiste: number;
+    private table: Array<Piste>;
+
+    constructor(titre: string, nbpiste: number, table: Array<Piste>) {
+        this.titre = titre;
+        this.nbpiste = nbpiste;
+        this.table = table;
+    }
+
+    estFini(): boolean {
+        if (this.nbpiste > 0) {
+            return true;
+        }
+        return true;
+    }
+
+    contient(): {
+
+    }
+}
\ No newline at end of file
diff --git a/src/reservoir.ts b/src/reservoir.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9bd686b6d108a25bfe2a363afa1421a6105f3a0c
--- /dev/null
+++ b/src/reservoir.ts
@@ -0,0 +1,34 @@
+class Reservoir {
+    capacite: number;
+    contenu: number;
+
+    constructor(capacite: number) {
+        this.capacite = capacite;
+        this.contenu = 0;
+    }
+
+    verse(quantite: number): number {
+        let dispo = this.capacite = this.contenu;
+        if (quantite <= dispo) {
+            this.contenu += quantite;
+            return 0;
+        } else {
+            this.contenu = this.capacite;
+            return quantite - dispo;
+        }
+    }
+
+    puise(avantite: number) {
+        if (quantite < this.contenu) {
+            this.contenu -= this.quantite;
+            return quantite;
+        } else {
+            this.contenu = 0;
+            return quantite;
+        }
+
+        jauge(): Number{
+            return this.contenu;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/temps.ts b/src/temps.ts
new file mode 100644
index 0000000000000000000000000000000000000000..79c9df9b6621787cf3e1590e2ed507d37ec3a8bf
--- /dev/null
+++ b/src/temps.ts
@@ -0,0 +1,34 @@
+class Temps {
+    heure!: number;
+    minute!: number;
+    second!: number;
+}
+
+function temps2Number(t: Temps): number {
+    let totalsec: number = t.heure * 60 * 60 + t.minute * 60 + t.second;
+    return totalsec;
+}
+
+function number2Temps(ts: number): Temps {
+    let t = new Temps();
+    t.heure = Math.floor(ts / 3600);
+    ts %= 3600;
+    t.minute = Math.floor(ts / 60);
+    t.second = ts % 60;
+    return t;
+}
+
+function multiplieTemps(t: Temps, ts: number): Temps {
+    let multipl = temps2Number(t) * ts;
+    return number2Temps(multipl);
+}
+
+function multiplie(t: Temps, nb: number): Temps {
+    return number2Temps(temps2Number(t) * nb);
+}
+
+function km(t: Temps, kill: number): number {
+    let tk = kill / (temps2Number(t) / 3600);
+    return tk;
+}
+