资源描述:
《工程分析程序设计上机作业Fortran部分.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、工程分析程序设计上机作业(二)模块化编程(1)上机目的:掌握内部例程、主程序、外部例程、接口块、模块等功能的使用方法。1、有一个六边形,求其面积。为求面积,作了3条辅助线。如图所示:(提示,三角形面积=,其中,a、b、c为三个边长)。要求用内部函数来实现。PROGRAMMAINIMPLICITNONEREAL::L1=10,L2=20,L3=18,L4=15,L5=21,L6=14,L7=30,L8=36,L9=28REALFF=AREA(L5,L6,L9)+AREA(L1,L8,L9)+AREA(L2
2、,L7,L8)+AREA(L3,L4,L7)PRINT*,FCONTAINSFUNCTIONAREA(A,B,C)REALS,A,B,C,AREAS=(A+B+C)/2AREA=SQRT(S*(S-A)*(S-B)*(S-C))ENDFUNCTIONEND2、使用牛顿法求解以下方程的根:(要求用外部子程序)PROGRAMMAINIMPLICITNONEREALF,DFEXTERNALGENCALLGEN(F,DF)ENDSUBROUTINEGEN(F,DF)IMPLICITNONEREAL::X=0RE
3、ALF,DFINTEGER::N=0INTEGER::MaxN=100REAL::Eps=1.0E-6F=X**2+4*X+1DF=2*X+4DOWHILE(ABS(F)>Eps.AND.N4、ALLGEN(F,DF)ENDSUBROUTINEGEN(F,DF)IMPLICITNONEREAL::X=0REALF,DFINTEGER::N=0INTEGER::MaxN=100REAL::Eps=1.0E-6F=7*X**4+6*X**3-5*X**2+4*X+3DF=28*X**3+18*X**2-10*X+4DOWHILE(ABS(F)>Eps.AND.N5、X+4ENDDOIF(F<=Eps)THENPRINT*,'ANSWERIS',XELSEPRINT*,'NOANSWER'ENDIFENDSUBROUTINE1、编写一个子例程子程序,SUM(S,T,N1,N2)。把整型数N1到N2进行求和,并把求和的结果放置到S,把整型数N1到N2进行求积,并把求积的结果放置到T。并用这个子程序来计算PROGRAMMAINIMPLICITNONEINTEGERN1,N2,S,T,A1,A2,A3,A4,YPRINT*,'请输入N1,N2:'READ*,N1,N2CA
6、LLSUM(S,T,N1,N2)A1=SPRINT*,'请输入N1,N2:'READ*,N1,N2CALLSUM(S,T,N1,N2)A2=SPRINT*,'请输入N1,N2:'READ*,N1,N2CALLSUM(S,T,N1,N2)A3=TPRINT*,'请输入N1,N2:'READ*,N1,N2CALLSUM(S,T,N1,N2)A4=TY=A1+A2+A3-A4PRINT*,'Y=',YENDSUBROUTINESUM(S,T,N1,N2)IMPLICITNONEINTEGERS,T,N1,N2
7、,IS=0T=1DOI=N1,N2S=S+IT=T*IENDDOEND1、编写一个模块程序,提供以下服务:定义出常量p、e。定义出子程序,实现求和、求阶乘n!。并在主程序中计算如下结果:从键盘上输入整数n、实型数A、R、R0,求(实型)和(实型)2、MODULECX3、IMPLICITNONE4、REAL,PARAMETER::PI=3.1415926,E=2.7185、CONTAINS6、FUNCTIONADD(N)7、IMPLICITNONE8、INTEGERI,N,ADD9、ADD=110、DOI
8、=2,N11、ADD=ADD+I12、ENDDO13、ENDFUNCTION14、FUNCTIONCJ(N)15、IMPLICITNONE16、INTEGERI,N,CJ17、CJ=118、DOI=1,N19、CJ=CJ*I**220、ENDDO21、ENDFUNCTION22、ENDMODULE23、PROGRAMMAIN24、USECX1、IMPLICITNONE2、INTEGERN3、REALA,R,R0,D,F4、PRINT*,'请