import java.text.DecimalFormat;

public class Etape3{

    /**
     * Calcule l'aire d'un triangle de hauteur et de base spécifiés
     * @param hauteur
     * @param base
     * @return l'aire
     */
    public static double aireTriangle(int hauteur, int base) {
        return base * hauteur / 2.0;
    }

    /**
     * Calcule le volume d'une sphère de rayon spécifié
     * @param rayon
     * @return le volume
     */
    public static double volumeSphere(double rayon) {
        return 4*Math.PI*Math.pow(rayon, 3)/3.0;
    }

    /**
     * Calcule l'imc en fonction de la masse et la taille spécifiées
     * @param poids en kg
     * @param taille en cm
     * @return la valeur de l'imc
     */
    public static double imc(double masse, double taille) {
        double tailleEnM = taille/100;
        return masse / (tailleEnM*tailleEnM);
    }

    /**
     * @param prenom un prenom
     * @param masse en kg
     * @param taille en cm
     * @return un message contenant la valeur de l'imc
     */
    public static String imcMessage(String prenom, double masse, double taille) {
        return prenom + ", ton imc est : "+imc(masse, taille);
    }

    public static void main(String[] args) {
        // tests aire triangle
        System.out.println(aireTriangle(10, 8)); // normalement 40

        // tests volume sphère
        System.out.println(volumeSphere(3)); // normalement 113.1

        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println(df.format(volumeSphere(3))); // normalement 113.1

        // tests imc
        System.out.println(imcMessage("obi1", 95, 181)); // normalement 29.0
    }
}


/* même code en PF */

/*
 
import java.util.function.DoubleFunction;
import java.util.function.IntFunction;

public class Etape3 {

    private static IntFunction<Double> aireTriangle = (hauteur, base) -> base * hauteur / 2.0;
    private static DoubleFunction<Double> volumeSphere = rayon -> 4 * Math.PI * Math.pow(rayon, 3) / 3.0;
    private static DoubleFunction<Double> imc = (masse, taille) -> masse / (taille / 100 * taille / 100);
    private static IMCMessage imcMessage = (prenom, masse, taille) -> prenom + ", ton imc est : " + imc.apply(masse, taille);

    @FunctionalInterface
    interface IMCMessage {
        String getMessage(String prenom, double masse, double taille);
    }

    public static void main(String[] args) {
        System.out.println(aireTriangle.apply(10, 8)); // normalement 40

        System.out.println(volumeSphere.apply(3)); // normalement 113.1

        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println(df.format(volumeSphere.apply(3))); // normalement 113.1

        System.out.println(imcMessage.getMessage("obi1", 95, 181)); // normalement 29.0
    }
}



 */