PROGRAM legfeljebb_harmadfoku IMPLICIT NONE DOUBLE PRECISION :: a1, b1, c1, d1 !A bemeno egyutthatok DOUBLE PRECISION :: elsofoku COMPLEX :: x1, x2, x3 !Gyokok 990 FORMAT(F9.4) !Az egyutthatok kiirasi formatuma WRITE(*,*) 'Valos egyutthatos harmadfoku egyenlet megoldasa.' WRITE(*,*) 'Adja meg az egyenlet egyutthatoit,' WRITE(*,*) 'es megadom az adott egyutthatoju egyenlet megoldasait.' WRITE(*,*) 'Kerem x**3 egyutthatojat:' READ(*,*) a1 WRITE(*,*) 'Kerem x**2 egyutthatojat:' READ(*,*) b1 WRITE(*,*) 'Kerem x egyutthatojat:' READ(*,*) c1 WRITE(*,*) 'Kerem a konstans tagot:' READ(*,*) d1 !Ha a1 nem nulla, akkor az egyenlet harmadfoku IF (a1 .NE. 0) THEN CALL harmadfoku(a1, b1, c1, d1, x1, x2, x3) WRITE(*,*) 'Az ' WRITE(*,990) a1 WRITE(*,990) b1 WRITE(*,990) c1 WRITE(*,990) d1 WRITE(*,*) ' egyutthatos harmadfoku egyenlet gyokei' WRITE(*,*) 'x1 = ', x1 WRITE(*,*) 'x2 = ', x2 WRITE(*,*) 'x3 = ', x3 !Ha a1 nulla, de b1 nem, akkor az egyenlet masodfoku ELSE IF (b1 .NE. 0) THEN CALL masodfoku(b1, c1, d1, x1, x2) WRITE(*,*) 'Az ' WRITE(*,990) b1 WRITE(*,990) c1 WRITE(*,990) d1 WRITE(*,*) ' egyutthatos masodfoku egyenlet gyokei' WRITE(*,*) 'x1 = ', x1 WRITE(*,*) 'x2 = ', x2 !Ha a1 és b1 nulla, de c1 nem, akkor az egyenlet elsofoku ELSE IF (c1 .NE. 0) THEN x1 = elsofoku(c1, d1) WRITE(*,*) 'Az ' WRITE(*,990) c1 WRITE(*,990) d1 WRITE(*,*) ' egyutthatos elsofoku egyenlet gyokei' WRITE(*,*) 'x1 = ', x1 !Kulonben az egyenlet nulladfoku ELSE IF (d1 .NE. 0) THEN WRITE(*,*) 'Az egyenletnek nincs megoldasa.' ELSE WRITE(*,*) 'Az egyenletnek minden szam megoldasa.' END IF STOP END PROGRAM