- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西安交大fortran上机作业
工程分析程序设计上机作业(三)模块化编程(2)上机目的:进一步掌握内部例程、外部例程、接口块、模块等功能的使用方法。练习例程重载、例程递归的使用方法。利用例程重载编写一个子程序求余数ACR(A,B)。要求,对两个整型数和两个实型数都有效(实型数相除的余数:两个实型数相除后的商仍然取一个整数,但剩余值小于除数)[不能用Fortran的内部函数MOD(x,y)]。MODULE Mod IMPLICIT NONE INTERFACE ACR MODULE PROCEDURE ACRREALSEND INTERFACECONTAINS SUBROUTINE ACRREALS(A,B,C) IMPLICIT NONE REAL A,B INTEGER C DO WHILE (AB) A=A-B END DO C=A END SUBROUTINEEND MODULEPROGRAM MAIN USE Mod IMPLICIT NONE REAL A,B INTEGER C PRINT*,请输入A,B的值: READ*,A,B CALL ACR(A,B,C) PRINT*,A和B的余数是:,C END PROGRAM编写函数子程序GDC求两个数的最大公约数。求最大公约数的算法如下:把两个数中大的那个数作为被除数,两数相除得到一个余数。把余数去除除数得到新一轮的余数。不断重复这一过程直到余数为0,这时的除数就是两个数的最大公约数。调用此函数,求1260,198,72三个数的最大公约数。program mainimplicit noneintegera,b,c,i,j,k print*,请输入要求的数:a,b,cread*,a,b,ci=gdc(a,b) j=gdc(b,c) k=gdc(i,j)print*,kcontainsfunctiongdc(a,b)implicit noneintegera,b,c,d,gdcif (ba) then d=a a=b b=dend if c=mod(a,b)do while (c0) a=b b=c c=mod(a,b)end dogdc=bend functionend编写一个函数子程序求sinh(x),以下分三个步骤完成:(1)用递归算法,求出;(2)自行编程求出,要求计算精度是[不能用Fortran的内部函数EXP(x)];(3)计算。 PROGRAM MAINIMPLICIT NONEINTEGER N,XREAL M PRINT*,请输入X值: READ*,X M=SINH(X) PRINT*,SINH(X)=,M CONTAINS FUNCTION SINH(X) IMPLICIT NONE INTEGER I,X,N REAL A,B,C,SINH I=1 A=X/I DO WHILE (A1.0E-6) C=1+A I=I+1 A=A*(X/I) END DO SINH=(C-(1/C))/2 END FUNCTION END编写一程序用Euler法求解微分方程,当x=0时,y=1.0。试求出x=0.1,0.2,0.3,0.4….,1.0时的y值。算法如下:Euler法求解,定解条件:。取向前差分,令,得PROGRAM MAINIMPLICIT NONEREAL X,YINTEGER I Y=1.0 X=0 DO I=1,10 Y=Y+0.1*(Y*Y-X*X) X=X+0.1 PRINT*,X=,X,Y=,Y END DOEND
文档评论(0)