FORTRAN童老师的第一次作业
PS:Fortran我函数之间穿real8型的变量咋就老报错呢???搞不懂,我就索性用了默认的real。
下面展示我的代码 内联代码片
。
program main
implicit none
real::result1,result2,left,right,jifen
real::N
external f,g
write(*,*)'请输入一个数字,作为区间划分细度'
read(*,*)N
!left=-1.0
!right=2.0
result1=jifen(f,-1.0,2.0,N)
result2=jifen(g,-1.0,1.0,N)
write(*,100)result1,result2
100 format (1x,'IF=',F8.4,'IG=',F8.4)
pause
end program main
function f(x)
implicit none
real::f,x
f=2.718281828**sin(x)
!f=e**sin(x)
!我不会调用标准的自然常数
end function
function g(x)
implicit none
real::g,x
g=3*x**2+2*x-15
end function
function jifen(F,A,B,N)
implicit none
real::jifen,H,S,F,A,B,N
integer::i
H=(B-A)/N
S=0
do i=1,N
S=S+F(A+(i-1)*H)+F(A+i*H)
enddo
jifen=S*H/2
end function
另外附上我的结果:
下面展示一些 内联代码片
。
IF=4.8879
IG=-28.0000
这个结果我用matlab验算了,够精确的