WarpPI/src/org/warp/picalculator/Equazione.java
2016-09-02 20:32:37 +02:00

57 lines
1.5 KiB
Java

package org.warp.picalculator;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import com.rits.cloning.Cloner;
public class Equazione extends FunzioneDueValori {
public Equazione(Funzione value1, Funzione value2) {
super(value1,value2);
}
@Override
public String simbolo() {
return Simboli.EQUATION;
}
@Override
public Funzione calcola() throws Errore {
return new Equazione(new Sottrazione((FunzioneBase)variable1.calcola(), (FunzioneBase)variable2.calcola()).calcola(), new Termine("0"));
}
public Funzione calcola(char charIncognita) {
@SuppressWarnings("unused")
ArrayList<Equazione> e;
//TODO: Finire. Fare in modo che risolva i passaggi fino a che non ce ne sono più
return null;
}
public ArrayList<Equazione> risolviPassaggio(char charIncognita) {
ArrayList<Equazione> result = new ArrayList<Equazione>();
result.add(this.clone());
for (Tecnica t : Tecnica.tecniche) {
ArrayList<Equazione> newResults = new ArrayList<Equazione>();
final int sz = result.size();
for (int n = 0; n < sz; n++) {
newResults.addAll(t.risolvi(result.get(n)));
}
Set<Equazione> hs = new HashSet<>();
hs.addAll(newResults);
newResults.clear();
newResults.addAll(hs);
result = newResults;
}
// TODO: controllare se è a posto
return result;
}
@Override
public Equazione clone() {
Cloner cloner = new Cloner();
return cloner.deepClone(this);
}
}