Ciao a tutti,
ho scritto questo programma Fortran che risolve una disequazione di secondo grado dei tipi indicati nel commento. Il programma parte ma non funziona correttamente (inserisco "maggiore" o "minore", poi i due numeri a e b, ma mi manda in CASE DEFAULT direttamente). Qualcuno saprebbe darmi una mano? :/
PROGRAM disequazione
IMPLICIT NONE
!voglio che il compilatore risolva una disequazione di secondo grado del tipo ax^2>b oppure ax^2<b
REAL :: a, b, rad
CHARACTER :: verso
rad = SQRT(b/a)
WRITE (*,*) "decidi il verso della disequazione: maggiore o minore?"
READ (*,*) verso
WRITE (*,*)"immetti due valori interi per a e per b"
READ (*,*) a, b
SELECT CASE (verso)
CASE ("maggiore")
         IF (a > 0 .AND. b .GE. 0.) THEN
         WRITE (*,*) " x < - ", rad, " oppure x > + ", rad
         READ (*,*)
                 ELSE IF ( a < 0 .AND. b < 0.) THEN
                 WRITE (*,*) " - ", rad, " < x < ", " + ", rad
                 READ (*,*)
                                 ELSE IF ( a > 0 .AND. b .LE. 0.) THEN
                                 WRITE (*,*) "la disequazione Š sempre soddisfatta"
                                 READ (*,*)
                                                 ELSE
                                                 WRITE (*,*) "la disequazione non Š mai soddisfatta"
                                                 READ (*,*)
                                                 END IF
CASE("minore")
         IF (a > 0 .AND. b .GE. 0.) THEN
         WRITE (*,*) " - ", rad, " < x < ", " + ", rad
         READ (*,*)
                 ELSE IF ( a < 0 .AND. b < 0.) THEN
                 WRITE (*,*) " x < - ", rad, " oppure x > + ", rad
                 READ (*,*)
                                 ELSE IF ( a > 0 .AND. b .LE. 0.) THEN
                                 WRITE (*,*) "la disequazione non Š mai soddisfatta"
                                 READ (*,*)
                                                 ELSE
                                                 WRITE (*,*) "la disequazione Š sempre soddisfatta"
                                                 READ (*,*)
                                                 END IF
CASE DEFAULT
WRITE (*,*) "errore di digiting"
END SELECT
STOP
END PROGRAM disequazione