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