Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class Figure {
- //propriété(s) (attribut(s))
- protected typeFigure: string;
- protected nbCote: number;
- protected taille: number;
- protected perimetre: number;
- protected aire: number;
- //constructeur(s)
- constructor(typeFigure: string, nbCote: number, taille: number) {
- this.typeFigure = typeFigure;
- this.nbCote = nbCote;
- this.taille = taille;
- this.perimetre = 0;
- this.aire = 0;
- }
- //méthode(s) (fonction(s) et procédure(s))
- calculePerimetre(): number {
- return this.getNbCote() * this.getTaille();
- }
- //méthode(s) abstraite(s)
- abstract calculeAire(): number;
- //Getter(s) && Setter(s)
- getTypeFigure(): string {
- return this.typeFigure;
- }
- getNbCote(): number {
- return this.nbCote;
- }
- getTaille(): number {
- return this.taille;
- }
- getPerimetre(): number {
- return this.perimetre;
- }
- getAire(): number {
- return this.aire;
- }
- //
- setTypeFigure(typeFigure:string) {
- this.typeFigure = typeFigure;
- }
- setNbCote(nbCote:number) {
- this.nbCote = nbCote;
- }
- setTaille(taille:number) {
- this.taille = taille;
- }
- private setPerimetre(perimetre:number) {
- this.perimetre = perimetre;
- }
- private setAire(aire: number) {
- //2 chiffres après la virgule (casting)
- this.aire = +aire.toFixed(2);
- }
- //@Override
- public toString(): string{
- return "Rapport de la figure: \n"
- + "\t-Type: " + this.getTypeFigure() + "\n"
- + "\t-Nombre de côté: " + this.getNbCote() + "\n"
- + "\t-Taille côté: " + this.getTaille() + " cm\n"
- + "\t-Périmètre: " + this.getPerimetre() + " cm\n"
- + "\t-Aire: " + this.getAire() + " cm²";
- }
- }
- class Losange extends Figure {
- //propriété(s) (attribut(s))
- private diagonale1: number;
- private diagonale2: number;
- private carre: boolean;
- ////constructeur(s)
- constructor(diagonale1: number, diagonale2: number) {
- //6 est arbitraire
- super("Losange", 4, 6);
- this.diagonale1 = diagonale1;
- this.diagonale2 = diagonale2;
- this.carre = this.boolCarre();
- this.setAire(this.calculeAire());
- this.setPerimetre(this.calculePerimetre());
- }
- //méthode(s) (fonction(s) et procédure(s))
- //savoir si un losange est carré (True or False)
- boolCarre(): boolean {
- if (this.getDiagonale1() == this.getDiagonale2()) {
- return true;
- }
- return false;
- }
- //polymorphisme - héritage
- calculeAire(): number {
- return (( this.getDiagonale1() * this.getDiagonale2() ) / 2);
- }
- //Getter(s) && Setter(s)
- getDiagonale1(): number {
- return this.diagonale1;
- }
- getDiagonale2(): number {
- return this.diagonale2;
- }
- getCarre(): boolean {
- return this.carre;
- }
- setDiagonale1(diagonale1:number) {
- this.diagonale1 = diagonale1;
- }
- setDiagonale2(diagonale2:number) {
- this.diagonale2 = diagonale2;
- }
- //@Override
- public toString(): string {
- return super.toString() + "\n"
- + "\t-Diagonale 1: " + this.getDiagonale1() + "\n"
- + "\t-Diagonale 2: " + this.getDiagonale2() + "\n"
- + "\t-Carre: " +this.getCarre() + "\n\n";
- }
- }
- //base * hauteur / 2
- class Triangle extends Figure{
- //propriété(s) (attribut(s))
- private base: number;
- private hauteur: number;
- ////constructeur(s)
- constructor(base: number) {
- //6 arbitraire
- super("Trangle", 3, 6);
- this.base = base;
- this.hauteur = 0;
- this.setHauteur(this.calculeHauteur());
- this.setAire(this.calculeAire());
- this.setPerimetre(this.calculePerimetre());
- }
- //méthode(s) (fonction(s) et procédure(s))
- calculeHauteur(): number {
- return ( (this.getBase() * Math.sqrt(this.getNbCote())) / 2 );
- }
- //polymorphisme - héritage
- calculeAire(): number {
- return ( (this.getBase() * this.getHauteur()) / 2 );
- }
- //Getter(s) && Setter(s)
- getBase(): number {
- return this.base;
- }
- getHauteur(): number {
- return this.hauteur;
- }
- setHauteur(hauteur: number) {
- this.hauteur =+ hauteur.toFixed(2);
- }
- //@Override
- public toString(): string {
- return super.toString() + "\n"
- + "\t-Base: " + this.getBase() + "\n"
- + "\t-Hauteur: " + this.getHauteur() + "\n\n";
- }
- }
- let t1 = new Triangle(5);
- let t2 = new Triangle(10);
- let l1 = new Losange(5, 6);
- let l2 = new Losange(4, 4);
- let figures: Figure[] = [t1, t2, l1, l2];
- for (let f of figures) {
- console.log(f.toString());
- }
- /*Consignes:
- Ex1 : Figures géométriques
- •Une figure a un nombre de côtés.
- •Tous les côtés ont la même taille.
- •La taille varie d’une instance de Figure à une autre.
- •Une figure a un périmètre.•Une figure a une aire.
- •On pourra demander à une figure un rapport retourné dans une chaîne de caractères, contenant son type, ses propriétés, son périmètre, son aire et autre propriétés spécifiques.
- •Un triangle est une figure.•La hauteur d’un triangle de côté A est A x racinecarree(3) / 2
- •Un losange est une figure.•On pourra demander à un losange si c’est un carré
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement