Fortran select case model
-
Upload
dragos-moisa -
Category
Documents
-
view
223 -
download
0
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