Soluzione equazioni di secondo grado

Torniamo ora al problema della soluzione di una equazione di secondo grado che era stato posto in precedenza. Il calcolo del discriminante non presenta nessuna difficoltà. Quello che non si poteva fare senza le istruzioni condizionali era seguire un procedimento diverso a seconda del suo valore. Con le istruzioni condizionali questo è invece molto facile, come mostrato dal programma SecondoGrado.java, il cui codice è riportato qui sotto.

/*
  Soluzione equazione di secondo grado.
*/

class SecondoGrado {
  public static void main (String args[]) {
    double a=2, b=5, c=3;
    double d;
    double s1, s2;

    d=b*b-4*a*c;

    if( d==0 ) {
      s1=(-b - Math.sqrt( b*b -4*a*c ))/(2*a);
      s2=s1;
      System.out.println("Soluzioni coincidenti: " + s1);
    }

    if( d>0 ) {
      s1=(-b - Math.sqrt( b*b -4*a*c ))/(2*a);
      s2=(-b + Math.sqrt( b*b -4*a*c ))/(2*a);
      System.out.println("Soluzioni reali: " + s1 + " " + s2);
    }

    if( d<0 ) {
      System.out.println("Soluzioni complesse");
    }
  }
}

Questo programma è molto semplice, anche se è il più lungo visto fino ad ora: per prima cosa si calcola il discriminante, che viene memorizzato nella variabile d. Se il valore di d è zero, allora si stampa la unica soluzione della equazione. Se d è positivo, si stampano le due soluzioni distinte. L'ultima istruzione condizionale ha come condizione d < 0, per cui la ultima istruzione System.out... viene eseguita solo se d è negativo.