fortran90例子.docx
- 文档编号:26233931
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:10
- 大小:16.18KB
fortran90例子.docx
《fortran90例子.docx》由会员分享,可在线阅读,更多相关《fortran90例子.docx(10页珍藏版)》请在冰豆网上搜索。
fortran90例子
例1、输入M个实数,将其相加,并输出其和。
PROGRAMexample_1
Implicitnone
Integer:
:
n,m
Real:
:
t=0,a=0
Read*,m
Do
Read*,a
T=t+a
N=n+1
If(n>=m)exit
Enddo
Print*,t
Endprogramexample_1
例2、求∑I!
的阶乘(I=4,8)。
Functionfactor(n)result(fac_result)
Implicitnone
Integer,intent(in):
:
n
Integer,intent(out):
:
fac_result
Integer:
:
I
Fac_result=1
DoI=1,n
Fac_result=fac_result*I
Enddo
Endfunctionfactor
Programexample_2
Implicitnone
Integer:
:
factor,s=0,I
DoI=4,8
S=s+factor(i)
Enddo
Print*,s
Endprogramexample_2
例3、输入一个数,判断他是否能被3整除,并输出相应的信息。
Programjudge
Implicitnone
Integer:
:
n,m
Read*,n
M=mod(n,3)
Selectcase(m)IF(M==0)THEN
Case(0)
Print*,’yes’Print*,’YES’
CasedefaultELSE
Print*,’no’Print*,’NO’
EndselectENDIF
Endprogramjudge
例4、判断一个整数N是否为素数
PROGRAMprime
Implicitnone
Integer:
:
n,I,m
Read*,n
M=sqrt(real(n))
DoI=2,m
If(mod(n,i)==0)exit
Enddo
If(I>m)then
Print*,’yes’
Else
Print*,’no’
endif
endprogramprime
例5、求N的阶乘
PROGRAMexample_5
Implicitnone
Integer:
:
n,I=0,fac=1
Read*,n
Dowhile(I<7)
I=I+1
Fac=fac*I
Enddo
Endprogramexample_5
例6、求出全部的水仙花数。
(水仙花数是个三位数,其各位数字的立方和等于该数。
)
programexample_6
implicitnone
integer:
:
I,j,k,m,n
ii:
doI=1,9
jj:
doj=1,9
kk:
dok=1,9
m=I*100+j*10+k
n=I**3+j**3+k**3
if(m==n)print*,m
enddokk
enddojj
enddoii
endprogramexaple_6
例7、牛顿迭代法求方程X**4+4*X+1=0的根
programexample_7
implicitnone
integer:
:
I=1,m
real:
:
x0,x,e
read*,x0,e,m(m控制迭代次数)
do
x=(-x0*x0-1)/4
if(abs(x-x0)<=e)exit
x0=x
I=I+1
If(I>=m)then
Print*,’not’
Exit
Endif
Enddo
If(I Endprogramexample_7 例8、将例2写成接口块的形式 主程序: Programexample_2 Implicitnone Interface Functionfactor(n)result(factor_result) Integer,intent(in): : n Integer: : factor_result Endfunctionfactor Endinterface Implicitnone Integer: : s=0,I DoI=4,8 S=s+factor(i) Enddo Print*,s Endprogramexample_2 例9、将例2函数子程序改写成子例行子程序。 Subroutineisum(n,isum_result) implicitnone integer,intent(in): : n integer,intent(out): : isum_result integer: : I isum_result=1 doI=1,n isum_result=isum_result*I enddo endsubroutine peogramexample_9 implicitnone integer: : x,y read*,x callisum(x,y) print*,’y=’,y endprogramexample_9 例10、子程序作为虚元(虚过程) PROGRAMexample_10 Implicitnone Interface Functionsum(x,y)result(sum_result) Integer,intent(in): : x,y Integer,intent(out): : sum_result Endfunctionsum Functionminu(x,y)result(minu_result) Integer,intent(in): : x,y Integer,intent(out): : minu_result Endfunctionminu Integer: : a,b Read*,a,b Callproc(a,b,sum) Callproc(a,b,minu) Endprogramexample_10 Subroutineproc(a,b,fun) Implicitnone Functionfun(x,y)result(fun_result) Integer,intent(in): : x,y Integer,intent(out): : fun_result Endfunctionfun Integer,intent(in): : a,b Print*,fun(a,b) Endsubroutine Functionsum(x,y)result(sum_result) Implicitnone Integer,intent(in): : x,y Integer,intent(out): : sum_result Sum_result=x+y Endfunctionsum Functionminu(x,y)result(minu_result) Implicitnone Integer,intent(in): : x,y Integer,intent(out): : minu_result Minu_result=x-y Endfunctionminu 例11、模块实现数据共享 moduleexam_module implicitnone real: : a,b,c endmoduleexam_module functionaver3()result(aver_result) useexam_module real: : aver_result aver_result=(a+b+c)/3 endfunctionaver3 functionmax3()result(max_result) useexam_module real: : max_result max_result=a if(b>max_result)max_result=b if(c>max_result)max_result=c endfunctionmax3 programexample_11 useExam_module real: : aver3,max3 read*,a,b,c print*,aver3(),max3() endprogramexample_11 注意: (1)USE模块名,ONLY: 实体名 例: useexam_module,only: a,b,此时C不再是共享变量,故C仍需通过虚实结合。 (2)useexam_module,x->a 将模块中A与程序单元中变量X共享。 例12、递归 recursivefunctionfac(n)result(fac_result) implicitnone Integer,intent(in): : n Integer,intent(out): : fac_result If(n==0)then Fac_result=1 Else Fac_result=fac(n-1)*n Endif Endfunctionfac Programexample_12 Implicitnone Interface Recursivefunctionfac(n)result(fac_result) Integer,intent(in): : n Integer,intent(out): : fac_result Endfunctionfac Endinterface Integer: : n Read*,n Print*,fac(n) Endprogramexample_12 例13、编一函数,求两数之和 a)用外部过程实现 programexample_131 implicitnone integer: : a,b,sum read*,a,b calladd(a,b,sum) print*,sum endprogramexample_131 subroutineadd(a,b,sum) implicitnone integer,intent(in): : a,b integer,intent(out): : sum sum=a+b endsubroutineadd b)用内部过程实现 programexampl_132 implicitnone integer: : a,b,sum read*,a,b calladd print*,sum contains subroutineadd sum=a+b endsubroutineadd endprogramexample_132
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fortran90 例子