program quadratic_equation ! program podaje rozwiazania rownania kwadratowego ! w postaci ax**2 + bx + c = 0 w zaleznosci od podanych ! a, b i c implicit none real :: a, b, c, delta ! inicjalizacja zmiennych rzeczywistych complex :: i = (0, 1) write(*,*) 'Podaj wartosci a, b i c' read(*,*) a, b, c if (a==0.0 .and. b==0.0 .and. c==0.0) then write(*,*) 'Rownanie tozsamosciowe' else if (a==0.0 .and. b==0.0) then write(*,*) 'Rownanie sprzeczne' else if (a==0.0 .and. c==0.0) then write(*,*) 'Rozwiazanie rownania jest x=0' else if (b==0.0 .and. c==0.0) then write(*,*) 'Rozwiazanie rownania jest x=0' else if (a==0.0) then write(*,*) 'Rozwiazanie rownania jest x=', -c/b else if (c==0.0) then write(*,*) 'Rozwiazaniem rownania jest x=0 lub x=', -b/a else if (b==0.0) then if ((a.gt.0.0 .and. c.gt.0.0) .or. (a.lt.0.0 .and. c.lt.0.0)) then write(*,*) 'Rozwiazaniem tego rownania sa liczby urojone w postaci' write(*,*) 'x=', i*sqrt(c/a), 'lub x=', -i*sqrt(c/a) else write(*,*) 'Rozwiazaniem rownania jest x=', sqrt(-c/a), 'lub x=', -sqrt(-c/a) end if else !tutaj mamy do czynienia juz tylko z "porzadnym" rownaniem kwadratowym delta = b*b - (4*a*c) if (delta == 0.0) then write(*,*) 'Rozwiazaniem rownania jest x=', -b/(2*a) else if (delta.lt.0.0) then write(*,*) 'Rozwiazaniem tego rownania sa liczby urojone w postaci' write(*,*) 'x=', (-b+(i*sqrt(-delta)))/(2*a), 'lub x=', (-b-(i*sqrt(-delta)))/(2*a) else write(*,*) 'Rozwiazaniem rownania jest x=', (-b+sqrt(delta))/(2*a), 'lub x=', (-b-sqrt(delta))/(2*a) end if end if end