PROGRAM Eq_Quadratica_1bis
!--------------------------------------------------------------------
! Soluzione dell'equazione algebrica quadratica mediante la formula
! risolutiva
!--------------------------------------------------------------------
  IMPLICIT NONE
  REAL :: a, b, c, delta, x, x1, x2

  WRITE(*,*) "Soluzione dell'eq. quadratica  a*x^2 + b*x + c = 0"
  WRITE(*,*) "Dammi i coefficienti a, b, c: "
  READ(*,*) a, b, c
  delta = b**2 - 4*a*c         ! calcola il discriminante

!       Costrutto IF-THEN-ELSE
  IF (delta < 0) THEN          ! nessuna soluzione
    WRITE(*,*) "Nessuna soluzione reale"

!       Costrutto IF-THEN-ELSE annidato
!       La clausola IF può seguire l'ELSE
  ELSE IF (delta == 0) THEN    ! una soluzione
      x = -b/2/a
      WRITE(*,*) "La soluzione e'", x
  ELSE                         ! due soluzioni
!       Via di default, se nessuna delle condizioni precedenti e' vera.
      x1 = (-b + SQRT(delta)) / 2 / a
      x2 = (-b - SQRT(delta)) / 2 / a 
      WRITE(*,*) "Le due soluzioni sono", x1, x2
  END IF
!       NOTA: un solo END IF,
!       che corrisponde alla clausola IF non preceduta da ELSE.
!       Quanto sopra e' di fatto una selezione a 3 vie, in cui le
!       condizioni introdotte dagli IF sono esaminate nell'ordine.

  STOP
END PROGRAM Eq_Quadratica_1bis
