PROGRAM Eq_Quadratica_1
!--------------------------------------------------------------------
! 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
!   "**": operatore di elevamento a potenza

!       Costrutto IF-THEN-ELSE
  IF (delta < 0) THEN          ! nessuna soluzione
    WRITE(*,*) "Nessuna soluzione reale"
  ELSE   ! Anche questo va scritto su una riga!

!       Costrutto IF-THEN-ELSE annidato
    IF (delta == 0) THEN       ! una soluzione
      x = -b/2/a
!       Ordine di esecuzione da sinistra a destra.
!       L'espressione corrisponde a -(b/2)/a
!       Pero':  p**q**r corrisponde a p**(q**r) !!
      WRITE(*,*) "La soluzione e'", x
    ELSE                       ! due soluzioni
      x1 = (-b + SQRT(delta)) / 2 / a
      x2 = (-b - SQRT(delta)) / 2 / a
!       SQRT: funzione intrinseca radice quadrata.
!       Non accetta argomenti interi!
      WRITE(*,*) "Le due soluzioni sono", x1, x2
    END IF
  END IF
!       Ogni costrutto comincia con IF (...) THEN
!       e deve essere chiuso da un END IF su riga separata.

  STOP
END PROGRAM Eq_Quadratica_1
