From 49f5bd01fa91656b098ed3e57c3d36d1b712ce6f Mon Sep 17 00:00:00 2001
From: BOGUET <thomas.boguet1@etu.univ-lorraine.fr>
Date: Sun, 9 Mar 2025 13:02:31 +0100
Subject: [PATCH] =?UTF-8?q?TD1=20introduction=20=C3=A0=20git?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore               |  1 +
 qualdev/compte_rendu.txt |  0
 src/Cararactere.ts       | 18 ++++++++
 src/cercle.ts            | 96 ++++++++++++++++++++++++++++++++++++++++
 src/complexe.ts          |  3 ++
 src/personne.ts          | 10 +++++
 src/piste.ts             | 57 ++++++++++++++++++++++++
 src/reservoir.ts         | 34 ++++++++++++++
 src/temps.ts             | 34 ++++++++++++++
 9 files changed, 253 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 qualdev/compte_rendu.txt
 create mode 100644 src/Cararactere.ts
 create mode 100644 src/cercle.ts
 create mode 100644 src/complexe.ts
 create mode 100644 src/personne.ts
 create mode 100644 src/piste.ts
 create mode 100644 src/reservoir.ts
 create mode 100644 src/temps.ts

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1d74e21
--- /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 0000000..e69de29
diff --git a/src/Cararactere.ts b/src/Cararactere.ts
new file mode 100644
index 0000000..5f7d5bb
--- /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 0000000..ed6c0b0
--- /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 0000000..9d60f9c
--- /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 0000000..d66524e
--- /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 0000000..9ef8bc0
--- /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 0000000..9bd686b
--- /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 0000000..79c9df9
--- /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;
+}
+
-- 
GitLab