Polinomio2Grado.java
Created with JBuilder |
class Polinomio2Grado {
// Costanti che identificano il tipo di soluzione
public static final int SOLUZIONI_REALI = 0;
public static final int SOLUZIONI_IMMAGINARIE = 1;
public static final int SOLUZIONE_UNICA = 3;
public static final int POLINOMIO_DEGENERE = 4;
// Coefficienti del polinomio
private double coefficienteX2;
private double coefficienteX;
private double coefficiente;
// Soluzioni
private double soluzione1;
private double soluzione2;
// Costruttore: è necessario specificare il valore
// dei coefficienti per creare oggetti della classe
public Polinomio2Grado( double x2, double x, double c ) {
coefficienteX2 = x2;
coefficienteX = x;
coefficiente = c;
soluzione1 = soluzione2 = 0;
}
// Metodi per l'impostazione dei coefficienti
public void impostaCoefficienteX2( double x2 ) {
coefficienteX2 = x2;
}
public void impostaCoefficienteX( double x ) {
coefficienteX = x;
}
public void impostaCoefficiente( double c ) {
coefficiente = c;
}
// Restituisce:
// - SOLUZIONI_REALI se il polinomio ammette due soluzioni reali distinte
// - SOLUZIONI_IMMAGINARIE se il polinomio ha soluzioni complesse coniugate
// - SOLUZIONE_UNICA se le soluzioni sono reali e coincidenti
// - POLINOMIO_DEGENERE se coefficienteX2 o coefficienteX sono uguali a 0
public int calcolaSoluzioni( ) {
// Sinonimi locali per gli attributi
double a = coefficienteX2;
double b = coefficienteX;
double c = coefficiente;
// Assumiamo che il polinomio sia degenere
int risultato = POLINOMIO_DEGENERE;
// Calcolo delle soluzioni
if ((a != 0) && (b != 0)) {
double delta = Math.pow(b,2) - 4 * a * c;
if (delta > 0) {
// Le soluzioni sono reali e distinte
soluzione1 = (-b + Math.sqrt(delta)) / (2 * a);
soluzione2 = (-b - Math.sqrt(delta)) / (2 * a);
risultato = SOLUZIONI_REALI;
} else if (delta < 0) {
// Le soluzioni sono complesse coniugate
risultato = SOLUZIONI_IMMAGINARIE;
} else {
// Le soluzioni sono reali e coincidenti
soluzione1 = soluzione2 = -b / (2 * a);
risultato = SOLUZIONE_UNICA;
}
}
return risultato;
}
// Metodi per la restituzione delle soluzioni e dei coefficienti
public double restituisciSoluzione1() {
return soluzione1;
}
public double restituisciSoluzione2() {
return soluzione2;
}
public double restituisciCoefficienteX2() {
return coefficienteX2;
}
public double restituisciCoefficienteX() {
return coefficienteX;
}
public double restituisciCoefficiente() {
return coefficiente;
}
}
Polinomio2Grado.java
Created with JBuilder |