Skip to content
Snippets Groups Projects
Commit ad925775 authored by RADELLAH Badr's avatar RADELLAH Badr
Browse files

q2 TP2

parent a280837f
Branches
No related tags found
No related merge requests found
...@@ -3,17 +3,26 @@ package formula; ...@@ -3,17 +3,26 @@ package formula;
public class Product implements Formula { public class Product implements Formula {
private Formula[] formulas; private Formula[] formulas;
// Constructeur prenant un tableau de formules
public Product(Formula... formulas) { public Product(Formula... formulas) {
this.formulas = 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 @Override
public String asString() { public String asString() {
StringBuilder sb = new StringBuilder("("); StringBuilder sb = new StringBuilder("(");
for (int i = 0; i < formulas.length; i++) { for (int i = 0; i < formulas.length; i++) {
sb.append(formulas[i].asString()); 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(")"); sb.append(")");
return sb.toString(); return sb.toString();
...@@ -21,10 +30,16 @@ public class Product implements Formula { ...@@ -21,10 +30,16 @@ public class Product implements Formula {
@Override @Override
public double asValue() { public double asValue() {
double product = 1; double result = initialValue(); // Initialise avec la valeur de départ (1 pour Product)
for (Formula formula : formulas) { 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 "*";
} }
} }
...@@ -3,17 +3,26 @@ package formula; ...@@ -3,17 +3,26 @@ package formula;
public class Sum implements Formula { public class Sum implements Formula {
private Formula[] formulas; private Formula[] formulas;
// Constructeur prenant un tableau de formules
public Sum(Formula... formulas) { public Sum(Formula... formulas) {
this.formulas = 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 @Override
public String asString() { public String asString() {
StringBuilder sb = new StringBuilder("("); StringBuilder sb = new StringBuilder("(");
for (int i = 0; i < formulas.length; i++) { for (int i = 0; i < formulas.length; i++) {
sb.append(formulas[i].asString()); 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(")"); sb.append(")");
return sb.toString(); return sb.toString();
...@@ -21,10 +30,15 @@ public class Sum implements Formula { ...@@ -21,10 +30,15 @@ public class Sum implements Formula {
@Override @Override
public double asValue() { public double asValue() {
double sum = 0; double result = initialValue(); // Initialise avec la valeur de départ (0 pour Sum)
for (Formula formula : formulas) { for (Formula formula : formulas) {
sum += formula.asValue(); result = cumulativeValue(result, formula.asValue()); // Ajoute chaque valeur
}
return result;
} }
return sum;
// Méthode symbol() comme déjà définie
public String symbol() {
return "+";
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment