fortran课后习题集答案解析.doc

上传人:一*** 文档编号:2738695 上传时间:2020-05-02 格式:DOC 页数:12 大小:69.50KB
返回 下载 相关 举报
fortran课后习题集答案解析.doc_第1页
第1页 / 共12页
fortran课后习题集答案解析.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《fortran课后习题集答案解析.doc》由会员分享,可在线阅读,更多相关《fortran课后习题集答案解析.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、.*第一章 FORTRAN程序设计基础 第15页 1、21简述程序设计的步骤。“程序设计”:反映了利用计算机解决问题的全过程,通常要经过以下四个基本步骤:(1)分析问题,确定数学模型或方法;(2)设计算法,画出流程图;(3)选择编程工具,编写程序;(4)调试程序,分析输出结果。2. 什么是算法?它有何特征?如何描述算法?解决问题的方法和步骤称为算法。算法的五个特征:(1) 有穷性。 (2) 确定性。 (3) 有效性。 (4) 要有数据输入。(5) 要有结果输出。算法的描述有许多方法,常用的有:自然语言、一般流程图、NS图等。第二章 顺序结构程序设计 第29页 1、2、3、4、5、6、7、8、9

2、1简述符号常量与变量的区别?符号常量在程序运行过程中其值不能改变。变量在程序运行过程中其值可以改变。2. 下列符号中为合法的FORTRAN 90标识符的有哪些?(1) A123B (2) M%10 (3) X_C2 (4) 5YZ(5) X+Y(6) F(X)(7) COS(X) (8) A.2(9) AONE (10) U.S.S.R. (11) min*2 (12) PRINT 3. 下列数据中哪一些是合法的FORTRAN常量?(1) 9,87 (2) .0 (3) 25.82 (4) -356231(5) 3.57*E2 (6) 3.57E2.1(7) 3.57E+2 (8) 3,57E

3、-24. 已知A=2,B=3,C=5(REAL);且I=2,J=3(INTEGER),求下列表达式的值:(1) A*B+C 表达式的值: 11 (2) A*(B+C) 表达式的值: 16(3) B/C*A 表达式的值: 1.2 (4) B/(C*A) 表达式的值: 0.3(5) A/I/J 表达式的值: 0.33 (6) I/J/A 表达式的值: 0(7) A*B*I/A*J*2 表达式的值: 4.5(8) C+(B/A)*3/B*2. 表达式的值: 7.25(9) A*B*I 表达式的值: 5125. 将下列数学表达式写成相应的FORTRAN表达式:(1) 1E-2 (2)(-B+SQRT(

4、B*B-4*A*C)/(2*A)(3) 1+X+X*X/2+X*3/2/3(4) COS(ATAN(A*3+B*3)*(1.0/3)/(C*C+1)(5) EXP(A*X*2+B*X+C)(6) COS(X*Y/SQRT(X*X+Y*Y)*36. 用FORTRAN语句完成下列操作:(1) 将变量I的值增加1。 I=I+1(2) I的立方加上J,并将结果保存到I中。 I=I*3+J(3) 将E和F中大者存储到G中。 G=Max(E,F)(4) 将两位自然数N的个位与十位互换,得到一个新的数存储到M中(不考虑个位为0的情况) M=MOD(N,10)*10+N/10第三章 选择结构程序设计第43页

5、1、2、3、5、6、7、91分析下列程序运行结果(1)LOGICAL P INTEGER I,I1,I2,I3 P=.FALSE. READ*,I I1=MOD(I,10) I2=MOD(I/10,10) I3=I/100 IF(I1+I3.EQ.2*I2)P=.TRUE. PRINT*,P END输入123 时,输出: T输入132 时,输出: F(2)REAL X,Y,ZREAD*,X,YIF(X*Y)0.AND.(X.NE.1.0)THEN Z=10.0ELSE IF(X*Y0.AND.x=2.5.AND.y=8(3) x+yz+6 FORTRAN表达式: (x+y)/=(z+6)(4)

6、 2x+4y+xy=0 FORTRAN表达式: 2*x+4*y+x*y=0(5) |a-b|c2 FORTRAN表达式: ABS(a-b)=c*c(6) 如果xy或xz,则min=x FORTRAN语句: IF(xy.OR.x0.AND.b0.AND.c0.AND.(a+b)c.AND.(b+c)a.AND.(c+a)b(8) a,b 之一为0但不同时为0 FORTRAN表达式: (a=0.OR.b=0).AND.(.NOT.(a=0.AND.b=0)(9) 如果m与n相等,则k为1,否则k为0FORTRAN语句: IF(m=n)THEN k=1 ELSE k=0 ENDIF(10) a,b是

7、否相同号 FORTRAN表达式: a*b03.如果A=2.5,B=7.5,C=5.0,D=6.0,L=.TRUE.,M=.FALSE.,请求出下列逻辑表达式的值。(1) (A+B).LT.(C+D).AND.A.EQ.3.5 逻辑表达式的值: .FALSE.(2) A+B/2.0.NE.C-D.OR.C.NE.D 逻辑表达式的值: .TRUE.(3) .NOT.L.OR.C.EQ.D.AND.M 逻辑表达式的值: .FALSE.(4) C/2.0+D.LT.A.AND.NOT.TRUE.OR.C.EQ.D 逻辑表达式的值: .FALSE.(5) (C.GT.D).OR.C.NOT.(A+B.L

8、T.D) 该表达式错误(6) (A.LT.B).AND.(B.LT.A) 逻辑表达式的值: .FALSE.5、某运输公司在计算运费时,按照运输距离S对运费打一定的折扣D,其标准如下:S250km D=0 250S500km D=2.5%500S1000km D=4.5%1000S2000km D=7.5%2000S2500km D=9.0%2500S3000km D=12.0%3000kmS D=15.0% 编写程序,输入基本运费Price,货物重量Weight,距离S,计算总运费Freight。其中Freight=Price*Weight*S*(1-D)。REAL Price, Weight

9、, S, Freight, D READ*, Price, Weight, S IF (S250) THEND=0 ELSEIF(S500) THEND=0.025ELSEIF(S1000) THEND=0.045ELSEIF(S2000) THEND=0.075ELSEIF(S2500) THEND=0.09ELSEIF(S-15.AND.X=0.AND.X15.AND.X1E-5) Y0=Y1Y1=2*Y0/3+X/(3*Y0*2)ENDDOPRINT*,Y1ENDP.66 习题12 Real a,b,m,xf(x)=x*3-x*2-1Read*,a,bDo while(Abs(a-b)1

10、e-6) m=(a+b)/2 If(f(a)*f(m)0)then a=m Else b=m EndifEnddoPrint*,(a+b)/2END第五章 FORTRAN 90数据类型第88页 4、104有一个三角形,顶点为X,Y,Z,其坐标分别为(1.5,2.0),(4.5,4.5),(18.0,10.5)。求三角形的面积和重心(提示:重心坐标=(X+Y+Z)/3利用复数计算)。COMPLEX X,Y,Z,WREAL A,B,C,S,PREAD(*,*)X,Y,ZA=ABS(X-Y)B=ABS(Y-Z)C=ABS(Z-X)P=(A+B+C)/2S=SQRT(P*(P-A)*(P-B)*(P-

11、C)W=(X+Y+Z)/3WRITE(*,*)SWRITE(*,*)WEND10设有4个圆,圆心分别在(2,2),(-2,-2),(2,-2),(-2,2),半径为1。当X,Y坐标点落在圆上和圆内时,Z=1;落在圆外时,Z=1;落在圆外时,Z=0。编出相应的的程序(要求利用逻辑变量)。IMPLICIT NONELOGICAL P,Q,R,SREAL X,YINTEGER ZREAD*,X,YZ=0P= (X-2)*2+(Y-2)*2=1Q= (X+2)*2+(Y+2)*2=1R= (X-2)*2+(Y+2)*2=1S= (X+2)*2+(Y-2)*2X(MA)MA=IENDDOT=X(1)X(

12、1)=X(MA)X(MA)=TWRITE(*,10)(X(I),I=1,10)10 FORMAT(1X,10I4)END7. 求34矩阵中的最大元素和最小元素。REAL A(3,4),AMAX,AMININTEGER I,JDO I=1,3 READ(*,*)(A(I,J),J=1,4)ENDDOAMAX=A(1,1)AMIN=A(1,1)DO I=1,3 DO J=1,4IF(A(I,J)AMAX)AMAX=A(I,J)IF(A(I,J)1E8时停止计算。计算公式是:FUNCTION JC(N)JC=1DO I=1,N JC=JC*IENDDOENDPROGRAM EX6REAL*8 E,T

13、E=0T=1.0I=0DO WHILE (T1E-8) E=E+T I=I+1 T=1.0/JC(I)END DOPRINT*,EEND8对任意自然数n,设计一个求n的各数位立方和的函数子程序F(n)(如F(121)=1*3+2*3+1*2=1+8+1=10),并调用F(n)求1000以内的所有水仙花数(水仙花数的概念请参看例 8.5)。!子程序FUNCTION F(N)INTEGER F,N,S,TS=0T=NDO WHILE(T0) K=MOD(T,10) S=S+K*3 T=T/10ENDDOF=SEND!主程序PROGRAM EX8INTEGER F,IDO I=100,999 IF(

14、F(I)=I)PRINT*,IENDDOENDDO12设计一个子例行程序,计算一个任意数组A中正数、负数和0的个数及其和。!子程序SUBROUTINE TJ(A,M,P,N,Z,S)INTEGER A(M),M,P,N,Z,S,IP=0N=0Z=0S=0DO I=1,M IF(A(I)0)THEN P=P+1 ELSEIF(A(I)0)THEN N=N+1 ELSE Z=Z+1 ENDIF S=S+A(I)ENDDOEND!主程序INTEGER X(10),P,N,S,Z,IDO I=1,10 READ(*,*)X(I)ENDDOCALL TJ(X,10,P,N,Z,S)WRITE(*,*)正

15、数个数,PWRITE(*,*)负数个数,NWRITE(*,*)零数个数,ZWRITE(*,*)所有数的和,SEND13.设计一个子例行程序SORT(A,N,K),其中A是一个一维数组,N是A的元素个数,SORT的功能是: 当K=1时,将数组A按升序排列;当K=0时,将数组A按降序排列;当K为其它数值时,数组A保持原序。!子程序SUBROUTINE SORT(A,N,K)INTEGER A(N),K,P,TDO I=1,N-1 P=I DO J=I+1, N IF(K=1)THEN IF(A(J)A(P)P=J ENDIF ENDDO T=A(I) A(I)=A(P) A(P)=TEND DOEND!主程序PARAMETER(N=10)INTEGER X(10),IREAD(*,*)XWRITE(*,10)(X(I),I=1,N)CALL SORT(X,N,1) !将数组A按升序排列 WRITE(*,10)(X(I),I=1,N)CALL SORT(X,N,0)!将数组A按降序排列WRITE(*,10)(X(I),I=1,N)10 FORMAT(1X,10I5)END

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com