fortran90例子Word文档格式.docx
- 文档编号:4742231
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:10
- 大小:16.25KB
fortran90例子Word文档格式.docx
《fortran90例子Word文档格式.docx》由会员分享,可在线阅读,更多相关《fortran90例子Word文档格式.docx(10页珍藏版)》请在冰点文库上搜索。
n
Integer,intent(out):
fac_result
Integer:
I
Fac_result=1
DoI=1,n
Fac_result=fac_result*I
Enddo
Endfunctionfactor
Programexample_2
Integer:
factor,s=0,I
DoI=4,8
S=s+factor(i)
Print*,s
Endprogramexample_2
例3、输入一个数,判断他是否能被3整除,并输出相应的信息。
Programjudge
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
n,I,m
M=sqrt(real(n))
DoI=2,m
If(mod(n,i)==0)exit
If(I>
m)then
Print*,’yes’
Else
Print*,’no’
endif
endprogramprime
例5、求N的阶乘
PROGRAMexample_5
Integer:
n,I=0,fac=1
Read*,n
Dowhile(I<
7)
I=I+1
Fac=fac*I
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
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
If(I>
=m)then
Print*,’not’
Exit
Endif
If(I<
m)print*,I,x
Endprogramexample_7
例8、将例2写成接口块的形式
主程序:
Programexample_2
Implicitnone
Interface
Functionfactor(n)result(factor_result)
Integer:
factor_result
Endfunctionfactor
Endinterface
Integer:
s=0,I
DoI=4,8
S=s+factor(i)
Enddo
例9、将例2函数子程序改写成子例行子程序。
Subroutineisum(n,isum_result)
implicitnone
integer,intent(in):
integer,intent(out):
isum_result
integer:
isum_result=1
doI=1,n
isum_result=isum_result*I
enddo
endsubroutine
peogramexample_9
integer:
x,y
read*,x
callisum(x,y)
print*,’y=’,y
endprogramexample_9
例10、子程序作为虚元(虚过程)
PROGRAMexample_10
Interface
Functionsum(x,y)result(sum_result)
Integer,intent(in):
sum_result
Endfunctionsum
Functionminu(x,y)result(minu_result)
minu_result
Endfunctionminu
a,b
Read*,a,b
Callproc(a,b,sum)
Callproc(a,b,minu)
Endprogramexample_10
Subroutineproc(a,b,fun)
Functionfun(x,y)result(fun_result)
fun_result
Endfunctionfun
Print*,fun(a,b)
Endsubroutine
Functionsum(x,y)result(sum_result)
Sum_result=x+y
Functionminu(x,y)result(minu_result)
Minu_result=x-y
例11、模块实现数据共享
moduleexam_module
real:
a,b,c
endmoduleexam_module
functionaver3()result(aver_result)
useexam_module
aver_result
aver_result=(a+b+c)/3
endfunctionaver3
functionmax3()result(max_result)
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)
If(n==0)then
Fac_result=1
Fac_result=fac(n-1)*n
Endfunctionfac
Programexample_12
Interface
Recursivefunctionfac(n)result(fac_result)
Endinterface
Print*,fac(n)
Endprogramexample_12
例13、编一函数,求两数之和
a)用外部过程实现
programexample_131
a,b,sum
read*,a,b
calladd(a,b,sum)
print*,sum
endprogramexample_131
subroutineadd(a,b,sum)
sum
sum=a+b
endsubroutineadd
b)用内部过程实现
programexampl_132
calladd
contains
subroutineadd
endsubroutineadd
endprogramexample_132
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fortran90 例子