You are on page 1of 2

!************************************************************************!

!* Enunt: Sa se rezolve ecuatia de gradul II cu coeficienti constanti. *!


!* Date de intrarea: a,b,c
*!
!* Date de iesire: x1,x2
*!
!************************************************************************!
program ec_gr_II
implicit none
!declaratii
real a,b,c,dt,x1,x2,xr,xi
character di
!afisare titlu
write(*,*) 'Rezolvarea ecuatiei de grad II cu coeficienti constanti: ax^2+bx+c=0'
write(*,*)
!date de intrare
10 continue
write(*,*) 'Introduceti coeficientii constanti:'
write(*,1)
1 format('a=',$)
read(*,*) a
write(*,2)
2 format('b=',$)
read(*,*) b
write(*,3)
3 format('c=',$)
read(*,*) c
!verificarea coeficientilor
write(*,*) 'Coeficientii introdusi sunt:'
write(*,*) 'a=',a
write(*,*) 'b=',b
write(*,*) 'c=',c
write(*,*) 'Coeficientii au fost introdusi corect? [Y/N]'
read (*,*) di
!conditie pentru a relua introducerea coeficientilor
if (di=='n' .or. di=='N') then
go to 10
end if
!conditie pentru delimitarea ecuatiilor de grad II
!(daca a=0 atunci ecuatia define ecuatie de grad I)
IF (a/=0.) then
dt=b**2-4*a*c
!delimitarea rezultatelor in functie de delta
if (dt>0.) then
write(*,*) 'Solutiile ecuatiei sunt:'
x1=(-b+sqrt(dt))/(2*a)
x2=(-b-sqrt(dt))/(2*a)
write(*,*) 'x1=',x1
write(*,*) 'x2=',x2
else if (dt==0.) then
write(*,*) 'Solutiile ecuatiei sunt egale, x1=x2:'
x1=(-b)/(2*a)
write(*,*) 'x=',x1
else if (dt<0.) then
write(*,*) 'Solutiile ecuatiei apartin multimii numerelor complexe:'
xr=-b/(2*a)
xi=sqrt(-dt)/(2*a)
write(*,*) 'x1=',xr,'+i',xi

write(*,*) 'x2=',xr,'-i',xi
end if
else
!rezolvarea ecuatiei de grad I
write(*,*) 'Ecuatia propusa este de gradul I: a=0 => bx+c=0 '
write(*,*)
if (b/=0.) then
write(*,*) 'Solutia ecuatiei este:'
x1=(-c)/b
write(*,*) 'x=',x1
else if (b==0.) then
if (c==0.) then
write(*,*) 'Deoarece coeficienti a,b,c sunt egali cu 0,
&' ecuatia de gradul I reprezinta o identitate.' !0=0
else
write(*,*) 'Deoarece coeficientii a,b sunt egali 0 iar c diferit de 0, '&
&' ecuatia de gradul I ajunge intr-o imposibilitate de calcul.' !c/=0; c==0
end if
end if
end if
write(*,*)
write(*,*) 'Ecuatia a fost rezolvata cu succes iar rezultatele au fost afisate.'
write(*,*) 'Apasati tasta <Enter> pentru a inchide programul.'
read *
end program ec_gr_II

You might also like