73334156 fortran ecutie grad ii

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

Upload: smiley-andrei

Post on 20-Oct-2015

13 views

Category:

Documents


5 download

TRANSCRIPT

  • !************************************************************************!

    !* 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

  • 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 pentru a inchide programul.'

    read *

    end program ec_gr_II