工程分析程序设计上机作业Fortran部分1.doc

上传人:夏** 文档编号:543632235 上传时间:2023-05-07 格式:DOC 页数:41 大小:614KB
返回 下载 相关 举报
工程分析程序设计上机作业Fortran部分1.doc_第1页
第1页 / 共41页
工程分析程序设计上机作业Fortran部分1.doc_第2页
第2页 / 共41页
工程分析程序设计上机作业Fortran部分1.doc_第3页
第3页 / 共41页
工程分析程序设计上机作业Fortran部分1.doc_第4页
第4页 / 共41页
工程分析程序设计上机作业Fortran部分1.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《工程分析程序设计上机作业Fortran部分1.doc》由会员分享,可在线阅读,更多相关《工程分析程序设计上机作业Fortran部分1.doc(41页珍藏版)》请在金锄头文库上搜索。

1、工程分析程序设计 上机作业(二)模块化编程(1)上机目的:掌握内部例程、主程序、外部例程、接口块、模块等功能的使用方法。1、 有一个六边形,求其面积。为求面积,作了3条辅助线。如图所示:(提示,三角形面积=,其中,a、b、c为三个边长)。要求用内部函数来实现。PROGRAM MAINIMPLICIT NONEREAL :L1=10,L2=20,L3=18,L4=15,L5=21,L6=14,L7=30,L8=36,L9=28REAL FF=AREA(L5,L6,L9)+AREA(L1,L8,L9)+AREA(L2,L7,L8)+AREA(L3,L4,L7)PRINT*,FCONTAINSFUN

2、CTION AREA(A,B,C)REAL S,A,B,C,AREAS=(A+B+C)/2AREA=SQRT(S*(S-A)*(S-B)*(S-C)END FUNCTIONEND2、 使用牛顿法求解以下方程的根:(要求用外部子程序)PROGRAM MAINIMPLICIT NONEREAL F,DFEXTERNAL GENCALL GEN(F,DF)ENDSUBROUTINE GEN(F,DF)IMPLICIT NONEREAL :X=0REAL F,DFINTEGER :N=0INTEGER :MaxN=100REAL :Eps=1.0E-6F=X*2+4*X+1DF=2*X+4DO WHI

3、LE (ABS(F)Eps.AND.NMaxN)X=X-F/DFN=N+1F=X*2+4*X+1DF=2*X+4END DOIF (FEps.AND.NMaxN)X=X-F/DFN=N+1F=7*X*4+6*X*3-5*X*2+4*X+3DF=28*X*3+18*X*2-10*X+4END DOIF (FB) 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*

4、,A和B的余数是:,C END PROGRAM2、 编写函数子程序GDC求两个数的最大公约数。求最大公约数的算法如下:把两个数中大的那个数作为被除数,两数相除得到一个余数。把余数去除除数得到新一轮的余数。不断重复这一过程直到余数为0,这时的除数就是两个数的最大公约数。调用此函数,求1260,198,72三个数的最大公约数。program main implicit none integer a,b,c,i,j,k print*,请输入要求的数:a,b,c read*,a,b,c i=gdc(a,b) j=gdc(b,c) k=gdc(i,j) print*,k contains functio

5、n gdc(a,b) implicit noneinteger a,b,c,d,gdc if (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 do gdc=b end functionend3、 编写一个函数子程序求sinh(x),以下分三个步骤完成:(1)用递归算法,求出;(2)自行编程求出,要求计算精度是不能用Fortran的内部函数EXP(x);(3)计算。 PROGRAM MAINIMPLICIT NONEINTEGER N,XREAL M PRINT*,请输入X值: READ*,X M

6、=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 END4、 编写一程序用Euler法求解微分方程,当x=0时,y=1.0。试求出x=0.1,0.2,0.3,0.4.,1.0时的y值。算法如下:Euler法求解,定解条件:。取向前差分,令, 得 PROGRAM MAINIMPLIC

7、IT 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工程分析程序设计 上机作业(四)结构化编程上机目的:练习使用选择结构和循环结构编制程序。1、 求y值,x由键盘输入。PROGRAM MAINIMPLICIT NONE REAL X,Y PRINT*,请输入X值 READ*,X IF (X=0.AND.X=10.AND.X=20.AND.X30) THEN Y=X*3+X*2+1ELSE PRINT*,X不在取值范围内END IFPRINT*,Y值为:,YEND2、 输入4个数A,B,C,D,按由大到小的顺序打印出来。PROGRAM MAINIMPLICIT NONEREAL A,B,C,D,T REAL:E(4) INTEGER I,J PRINT*,请输入四个数: READ*,A,B,C,D E(1)=A E(2)=B E(3)=C E(4)=D DO I=1,3 DO J=I+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号