Equazione2Grado.java
Created with JBuilder
import javabook.*;

// NOTA: i metodi "sqrt" e "pow" della classe Math, non sono
//       richiamati a partire da un oggetto Math, ma sono
//       richiamati utilizzando la classe stessa. Si tratta
//       di metodi particolari (anche i "main" hanno la stessa
//       proprietà) che sono definiti per un'intera classe
//       e non per il singolo oggetto (si veda l'unità didattica
//       3 per ulteriori approfondimenti).

class Equazione2Grado {

  public static void main(String[] args) {

    // Dichiaro e creo gli oggetti necessari per l'IO
    MainWindow finestra = new MainWindow("Equazioni di secondo grado");
    InputBox richiestaDati = new InputBox(finestra, "Inserimento dati");
    OutputBox uscitaDati = new OutputBox(finestra, "Risultati");

    // Rendo visibile la finestra principale
    finestra.show();

    // Richiedo i coefficienti dell'equazione
    // NOTA: le variabili sono dichiarate quando servono e inizializzate
    //       con il risultato dei metodi "getFloat" di richiestaDati
    double a = richiestaDati.getFloat("Inserisci il valore di a: ");
    double b = richiestaDati.getFloat("Inserisci il valore di b: ");
    double c = richiestaDati.getFloat("Inserisci il valore di c: ");

    if ((a != 0) && (b != 0)) {

      // a e b sono diversi da 0, l'equazione è non degenere
      // Procedo con il calcolo del discriminante
      double delta = Math.pow(b,2) - 4 * a * c;

      if (delta > 0) {
        // Le soluzioni sono reali e distinte
        double x1 = (-b + Math.sqrt(delta)) / (2 * a);
        double x2 = (-b - Math.sqrt(delta)) / (2 * a);
        // Visualizza le soluzioni
        uscitaDati.printLine("Le soluzioni sono reali e distinte. ");
        uscitaDati.print("Il valore di x1 è ");
        uscitaDati.printLine(x1);
        uscitaDati.print("Il valore di x2 è ");
        uscitaDati.printLine(x2);
      } else if (delta < 0) {
        // Le soluzioni sono complesse coniugate
        uscitaDati.printLine("Le soluzioni sono complesse coniugate. ");
      } else {
        // Le soluzioni sono reali e coincidenti
        double x = -b / (2 * a);
        // Visualizza le soluzioni
        uscitaDati.printLine("Le soluzioni sono reali e coincidenti. ");
        uscitaDati.print("Il valore di x1,x2 è ");
        uscitaDati.printLine(x);
      }

    } else {

      // L'equazione è degenere
      uscitaDati.printLine("L'equazione è degenere.");

    }

    // Visualizza i messaggi
    uscitaDati.show();

  }  // Fine di main


Equazione2Grado.java
Created with JBuilder