Fortran select case model

download Fortran select case model

of 2

Transcript of Fortran select case model

  • 7/25/2019 Fortran select case model

    1/2

    program main integer :: q write(*,1)

    1 format(20x,'Cu acest program puteti calcula eroarea integralei.') write(*,2)

    2 format(10x,'Introduceti optiunea dorita') write(*,3)

    3 format(10x,'1. Prima metoda.') write(*,4)

    4 format(10x,'2. A doua metoda.') write(*,5)

    5 format(10x,'3. A treia metoda.') write(*,6)

    6 format(10x,'0. Iesire din program.') read(*,*)q select case (q) case (1) call eq1 case (2) call eq2 case (3) call eq3 case (0) stop

    case default write(*,7) 7 format(10x,'EROARE! Optiunea dorita nu exista.') end select end

    subroutine eq1 write(*,1) 1 format(10x,'Valoarea inferioara a integralei =?') read(*,*)a write(*,2) 2 format(10x,'Valoarea superioara a integralei =?') read(*,*)b

    write(*,3) 3 format(10x,'Valoarea integralei =?') read(*,*)n h=(b-a)/n s=0 do 4 i=1,n xi=a+(i-1)*h xip1=xi+h xm=(xip1+xi)/2 fim=exp(xm) s=s+fim*h 4 continue errm=s-(exp(1.)-1.)

    write(*,*) s, errm end

    subroutine eq2 write(*,1) 1 format(10x,'Valoarea inferioara a integralei =?') read(*,*)a write(*,2) 2 format(10x,'Valoarea superioara a integralei =?') read(*,*)b

  • 7/25/2019 Fortran select case model

    2/2

    write(*,3) 3 format(10x,'Valoarea integralei =?') read(*,*)n h=(b-a)/n s=0 do 4 i=1,n xi=a+(i-1)*h fi=exp(xi) s=s+fi*h 4 continue err=s-(exp(1.)-1.) write(*,*) s, err end

    subroutine eq3 write(*,1) 1 format(10x,'Valoarea inferioara a integralei =?') read(*,*)a write(*,2) 2 format(10x,'Valoarea superioara a integralei =?') read(*,*)b write(*,3) 3 format(10x,'Valoarea integralei =?') read(*,*)n

    si=0 sp=0 h=(b-a)/n do 6 i=1,n-1 xi=a+h*i p=i/2. pr=p-int(p) if (pr.gt.0) go to 5 sp=sp+2*exp(xi) go to 6 5 si=si+4*exp(xi) 6 continue s=(exp(a)+exp(b)+si+sp)*h/3

    err=s-(exp(1.)-1.) write(*,*)s,err end