Correction 1

Ici, j'ai utilisé l'algorithme de tri à bulles pour trier les baleines par poids total estimé. Notez que le tri à bulles n'est pas le plus efficace des algorithmes de tri, mais il est simple à comprendre et à mettre en œuvre. Pour de grandes collections, vous voudriez utiliser une méthode de tri plus efficace ou une bibliothèque externe.

// Définition de la classe Baleine
public class Baleine {
    
    // Attributs privés de la classe Baleine
    private String nom;       // Nom de la baleine
    private double taille;    // Taille de la baleine en mètres
    private double poids;     // Poids de la baleine en tonnes
    private int nombre;       // Nombre estimé de baleines de ce type

    // Constructeur de la classe Baleine
    public Baleine(String nom, double taille, double poids, int nombre) {
        this.nom = nom;               // Initialisation du nom
        this.taille = taille;         // Initialisation de la taille
        this.poids = poids;           // Initialisation du poids
        this.nombre = nombre;         // Initialisation du nombre
    }

     // Constructeur de la classe Baleine
    public Baleine(String nom, double taille, double poids) {
        this.nom = nom;               // Initialisation du nom
        this.taille = taille;         // Initialisation de la taille
        this.poids = poids;           // Initialisation du poids
    }

     public Baleine(String nom) {
        this.nom = nom;               // Initialisation du nom
    }


    // Méthode pour calculer le poids de la baleine par mètre
    public double poidsAuMetre() {
        return poids / taille;        // Retourne le poids divisé par la taille
    }

    // Méthode pour estimer le poids total de toutes les baleines de ce type
    public double poidsTotalEstime() {
        return poids * nombre;        // Retourne le poids multiplié par le nombre
    }

    // Méthode getter pour obtenir le nom de la baleine
    public String getNom(){
        return this.nom;              // Retourne le nom de la baleine
    }

    // Méthode pour convertir les attributs de la baleine en une chaîne de caractères
    @Override
    public String toString() {
        return "toString: Nom: " + nom + ", Taille: " + taille + " mètres, Poids: " + poids + " tonnes, Nombre: " + nombre;
    }

    
}



// Importation de la classe ArrayList du package java.util
import java.util.ArrayList;

// Définition de la classe principale Main
public class Main {
    
    // Méthode principale main qui est le point d'entrée de l'application
    public static void main(String[] args) {
        

        // Création d'une ArrayList pour stocker des objets de type Baleine
        ArrayList<Baleine> arrayListBaleines = new ArrayList<>();
        
        // Ajout de trois baleines à l'ArrayList avec leurs caractéristiques respectives
        arrayListBaleines.add(new Baleine("Baleine bleue", 10, 30,15000 )); // Baleine bleue de 30 mètres pesant 10 tonnes/mètre et avec une estimation de 15000 individus
        arrayListBaleines.add(new Baleine("Baleine à bosse", 5, 15, 80000)); // Baleine à bosse de 15 mètres pesant 5 tonnes/mètre et avec une estimation de 80000 individus
        arrayListBaleines.add(new Baleine("Baleine grise", 3, 14, 26000)); // Baleine grise de 14 mètres pesant 3 tonnes/mètre et avec une estimation de 26000 individus


        // Boucle pour afficher le nom et le poids au mètre de chaque baleine
        for (Baleine baleine : arrayListBaleines) { //for each
            System.out.println(baleine.toString());
            System.out.println("Main: " + baleine.getNom() + " - Poids au mètre: " + baleine.poidsAuMetre() + " tonnes/mètre");
            System.out.println(baleine);
               System.out.println();
        }
        
        // Imprime une ligne vide pour séparer les sections d'affichage
        System.out.println();

        // Appel de la méthode pour trier les baleines par poids total estimé et les afficher
        trierEtAfficherCetacesParPoidsTotal(arrayListBaleines);
    }

    // Méthode pour trier une liste de baleines par poids total estimé et les afficher
    public static void trierEtAfficherCetacesParPoidsTotal(ArrayList<Baleine> baleines) {
        
        // Boucle externe pour parcourir la liste de baleines
        for (int i = 0; i < baleines.size() - 1; i++) {
            
            // Boucle interne pour comparer chaque baleine avec les suivantes dans la liste
            for (int j = i + 1; j < baleines.size(); j++) {
                
                // Si la baleine à l'index j a un poids total estimé supérieur à celle à l'index i, elles sont échangées
                if (baleines.get(j).poidsTotalEstime() > baleines.get(i).poidsTotalEstime()) {
                    Baleine temp = baleines.get(i);
                    baleines.set(i, baleines.get(j));
                    baleines.set(j, temp);
                
                }
            }
        }

        // Affichage du titre pour la section des baleines triées
        System.out.println("Cétacés par ordre du poids total estimé:");
        
        // Boucle pour afficher le nom et le poids total estimé de chaque baleine
        for (Baleine baleine : baleines) {
            System.out.println(baleine.getNom() + " - Poids total estimé: " + baleine.poidsTotalEstime() + " tonnes");
        }
    }
}
Modifié le: mercredi 18 octobre 2023, 10:05