class EquazioneSecondoGrado { private double a, b, c; public EquazioneSecondoGrado() { this.a = this.b = this.c = 0.0; } public EquazioneSecondoGrado(double myA, double myB, double myC) { this.a = myA; this.b = myB; this.c = myC; } public double getA() { return this.a; } public double getB() { return this.b; } public double getC() { return this.c; } public void setA(double myA) { this.a = myA; } public void setB(double myB) { this.b = myB; } public void setC(double myC) { this.c = myC; } public double delta() { return (this.b*this.b-4.0*this.a*this.c); } public boolean isRisolvibile() { if(this.delta() >= 0) return true; else return false; } public double[] risolvi() { if(this.delta() < 0) { double[] soluzione = {Double.NaN}; return soluzione; } else if(this.delta() == 0) { double[] soluzione = {-this.b/(2.0*this.a)}; return soluzione; } else { double[] soluzione = {(-this.b+Math.sqrt(this.delta()))/(2.0*this.a), (-this.b-Math.sqrt(this.delta()))/(2.0*this.a)}; return soluzione; } } }
import javax.swing.*; class UsaEquazioneSecondoGrado { public static void main(String[] args) { String stringaInput; double a, b, c; stringaInput = JOptionPane.showInputDialog("Inserisci il coefficiente a."); a = Double.parseDouble(stringaInput); stringaInput = JOptionPane.showInputDialog("Inserisci il coefficiente b."); b = Double.parseDouble(stringaInput); stringaInput = JOptionPane.showInputDialog("Inserisci il coefficiente c."); c = Double.parseDouble(stringaInput); EquazioneSecondoGrado myEquazione = new EquazioneSecondoGrado(a,b,c); if(myEquazione.isRisolvibile()) { double[] mySoluzioni = myEquazione.risolvi(); if(mySoluzioni.length == 1) JOptionPane.showMessageDialog(null, "L'equazione ammette due soluzioni coincidenti.\n" + "x1 = x2 = " + mySoluzioni[0]); else JOptionPane.showMessageDialog(null, "L'equazione ammette due soluzioni distinte.\n" + "x1 = " + mySoluzioni[0] + "\n" + "x2 = " + mySoluzioni[1] ); } else JOptionPane.showMessageDialog(null, "L'equazione non ammette soluzioni reali."); System.exit(0); } }