From ad925775ea5c2ec37d4b45586c64a015ae043dce Mon Sep 17 00:00:00 2001 From: badrr <badr.radellah@etu.univ-amu.fr> Date: Fri, 20 Sep 2024 10:35:05 +0200 Subject: [PATCH] q2 TP2 --- src/main/java/formula/Product.java | 25 ++++++++++++++++++++----- src/main/java/formula/Sum.java | 24 +++++++++++++++++++----- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/main/java/formula/Product.java b/src/main/java/formula/Product.java index e3b9498..65ddb82 100644 --- a/src/main/java/formula/Product.java +++ b/src/main/java/formula/Product.java @@ -3,17 +3,26 @@ package formula; public class Product implements Formula { private Formula[] formulas; - // Constructeur prenant un tableau de formules public Product(Formula... formulas) { this.formulas = formulas; } + // Retourne la valeur initiale pour le produit (1) + public double initialValue() { + return 1; + } + + // Cumul des valeurs pour le produit (multiplication) + public double cumulativeValue(double accumulator, double value) { + return accumulator * value; + } + @Override public String asString() { StringBuilder sb = new StringBuilder("("); for (int i = 0; i < formulas.length; i++) { sb.append(formulas[i].asString()); - if (i < formulas.length - 1) sb.append("*"); // Ajouter un "*" entre les formules + if (i < formulas.length - 1) sb.append(symbol()); } sb.append(")"); return sb.toString(); @@ -21,10 +30,16 @@ public class Product implements Formula { @Override public double asValue() { - double product = 1; + double result = initialValue(); // Initialise avec la valeur de départ (1 pour Product) for (Formula formula : formulas) { - product *= formula.asValue(); + result = cumulativeValue(result, formula.asValue()); // Multiplie chaque valeur } - return product; + return result; + } + + // Méthode symbol() comme déjà définie + public String symbol() { + return "*"; } } + diff --git a/src/main/java/formula/Sum.java b/src/main/java/formula/Sum.java index 32dc2a9..8e6b8ff 100644 --- a/src/main/java/formula/Sum.java +++ b/src/main/java/formula/Sum.java @@ -3,17 +3,26 @@ package formula; public class Sum implements Formula { private Formula[] formulas; - // Constructeur prenant un tableau de formules public Sum(Formula... formulas) { this.formulas = formulas; } + // Retourne la valeur initiale pour la somme (0) + public double initialValue() { + return 0; + } + + // Cumul des valeurs pour la somme (addition) + public double cumulativeValue(double accumulator, double value) { + return accumulator + value; + } + @Override public String asString() { StringBuilder sb = new StringBuilder("("); for (int i = 0; i < formulas.length; i++) { sb.append(formulas[i].asString()); - if (i < formulas.length - 1) sb.append("+"); // Ajouter un "+" entre les formules + if (i < formulas.length - 1) sb.append(symbol()); } sb.append(")"); return sb.toString(); @@ -21,10 +30,15 @@ public class Sum implements Formula { @Override public double asValue() { - double sum = 0; + double result = initialValue(); // Initialise avec la valeur de départ (0 pour Sum) for (Formula formula : formulas) { - sum += formula.asValue(); + result = cumulativeValue(result, formula.asValue()); // Ajoute chaque valeur } - return sum; + return result; + } + + // Méthode symbol() comme déjà définie + public String symbol() { + return "+"; } } -- GitLab