




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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、91简
2、述符号常量与变量的区别?符号常量在程序运行过程中其值不能改变。变量在程序运行过程中其值可以改变。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-2
3、4. 已知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(B*
4、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页 1、
5、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*Y<0.0) THEN Z=0.0ELSE Z=-1.0ENDIFWRITE(*,*)ZEND输入1,4
6、,输出: -1.0 输入4,1 ,输出: 10.0 输入1,-4 ,输出: 0.0(3)INTEGER X,Y,A,B X=1 Y=0 A=3 B=4 SELECT CASE(X) CASE(1) SELECT CASE(Y) CASE(0) A=A+1 CASE(1) B=B+ 1 END SELECT CASE(2) A=A+1 B=B-1 CASE DEFAULT A=A+B B=A+B END SELECT PRINT*,"A=",A,"B=",B END输出结果是:A=4 B=42将下列数学运算转换成对应的FORTRAN表达式或写出语句。(1)
7、 x(3,6) FORTRAN表达式: x>0.AND.x<6(2) 2.5y8 FORTRAN表达式: y>=2.5.AND.y<=8(3) x+yz+6 FORTRAN表达式: (x+y)/=(z+6)(4) 2x+4y+xy=0 FORTRAN表达式: 2*x+4*y+x*y=0(5) |a-b|c2 FORTRAN表达式: ABS(a-b)<=c*c(6) 如果x<y或x<z,则min=x FORTRAN语句: IF(x<y.OR.x<z)min=x(7) 实数a,b,c能否构成三角形三边 FORTRAN表达式: a>0.AN
8、D.b>0.AND.c>0.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是否相同号 FORTRAN表达式: a*b>03.如果A=2.5,B=7.5,C=5.0,D=6.0,L=.TRUE.,M=.FALSE.,请求出下列逻辑表达式的值。(1) (A+B).LT
9、.(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.LT.D) 该表达式错误(6) (A.LT.B).AND.(B.LT.A) 逻辑表达式的值: .FALSE.5、某运输公司在计算运费时,按照运输距离S对运费打一定的折扣D,其标准如下:S&
10、lt;250km D=0 250S<500km D=2.5%500S<1000km D=4.5%1000S<2000km D=7.5%2000S<2500km D=9.0%2500S<3000km D=12.0%3000kmS D=15.0% 编写程序,输入基本运费Price,货物重量Weight,距离S,计算总运费Freight。其中Freight=Price*Weight*S*(1-D)。REAL Price, Weight, S, Freight, D READ*, Price, Weight, S IF (S<250) THEND=0 ELSEIF(
11、S<500) THEND=0.025ELSEIF(S<1000) THEND=0.045ELSEIF(S<2000) THEND=0.075ELSEIF(S<2500) THEND=0.09ELSEIF(S<3000) THEND=0.12 ELSED=0.15 ENDIFFreight=Price*Weight*S*(1-D)WRITE(*,*)"Freight=", FreightEND6、编程判断自然数M是否为N的因子,是输出YES, 不是输出NO。 INTEGER M,N READ(*,*)M,N IF(MOD(N,M)= =0) TH
12、ENWRITE(*,*)"YES" ELSEWRITE(*,*)"NO" ENDIF END7、编程判断两位整数M是否为守形数。所谓守形数是指该数本身等于自身平方的低位数,如25是守形数,因为252=625,而625的低两位为25。是输出YES, 不是输出NO。INTEGER MREAD(*,*)MIF(MOD(M*M,100)=M)THENWRITE(*,*)"YES"ELSEWRITE(*,*)"NO"ENDIFEND9 已知 从键盘输入x,求出y的值。REAL X,YREAD(*,*)XIF(X>-15
13、.AND.X<0)THEN Y=COS(X+1)ELSEIF(X>=0.AND.X<10)THEN Y=LOG(X*X+1)ELSEIF(X>15.AND.X<20)THEN Y=X*(1.0/3)ELSE Y=X*XENDIFWRITE(*,*)"Y=",YEND第四章 循环结构程序设计第64页 1、2、5、11、121.写出下列程序的执行结果(1) 1.0 (2) 8 11(3) k= 6(4) 14 5(5) 5167P.65 2. 利用下式计算的近似值。IMPLICIT NONEREAL PIINTEGER IPI=0DO I=1,N
14、PI=PI+1.0/(4*I-3)-1.0/(4*I-1)END DOPRINT*,PI*4ENDP66 习题5IMPLICIT NONEINTEGER N,S,M,ILOGICAL FLAGDO N=3,999,2 FLAG=.TRUE. M=SQRT(REAL(N) DO I=2,M IF(MOD(N,I)=0)THEN FLAG=.FALSE. EXITENDIF ENDDO IF(FLAG) THEN S=N/100+MOD(N/10,10)+MOD(N,10) IF(MOD(S,2)/=0)PRINT*,N ENDIFEND DOENDP.66 习题11REAL Y0,Y1READ(
15、*,*)XY0=XY1=2*Y0/3+X/(3*Y0*2)DO WHILE(ABS(Y1-Y0)>1E-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)>1e-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,
16、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-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
17、。编出相应的的程序(要求利用逻辑变量)。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)*2<=1IF(P.OR.Q.OR.R.OR.S)Z=1PRINT*,ZEND第七章 数组第124页 1、3、4、7、9、121.写出下列程序的执行结果(1) 5.05.05.05.04.0(2) K= 5(3) 1 2 3 4 5 6 7 8 9 10 11 1
18、21 4 7 102 5 8 113 6 9 12(4) S= 15.003. 将一个数组的元素按逆序重新存放,例如,原来存放顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。IMPLICIT NONEINTEGER,PARAMETER:N=5INTEGER A(N),I,TDATA A/8,6,5,4,1/WRITE(*,10)(A(I),I=1,5)DO I=1,N/2 T=A(I) A(I)=A(N-I+1) A(N-I+1)=TEND DOWRITE(*,10)(A(I),I=1,5)10 FORMAT(1X,5I4)END4. 求数组中的最大和最小元素,并将最大和最小元素分别
19、与数组的第一和第二元素互换。IMPLICIT NONEINTEGER X(10),I,T,MA!变量MA存放最大数下标序号X=(/10,55,25,70,45,15,25,85,45,35/)WRITE(*,10)(X(I),I=1,10)MA=1DO I=2,10 IF(X(I)>X(MA)MA=IENDDOT=X(1)X(1)=X(MA)X(MA)=TWRITE(*,10)(X(I),I=1,10)10 FORMAT(1X,10I4)END7. 求3×4矩阵中的最大元素和最小元素。REAL A(3,4),AMAX,AMININTEGER I,JDO I=1,3 READ(*
20、,*)(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)<AMIN)AMIN=A(I,J) ENDDOENDDOWRITE(*,*)"最大值:",AMAXWRITE(*,*)"最小值:",AMINEND9. 输入5×5矩阵a,完成下列要求: (1) 输出矩阵a。 (2) 将第2行和第5行元素对调后,输出新的矩阵a。 (3) 用对角线上的各元素分别去除各元素所在行,输出新的矩阵a。PARAMETER(
21、N=5)INTEGER A(N,N),I,J,TDO I=1,N READ(*,*)(A(I,J),J=1,5)ENDDODO I=1,NWRITE(*,10)(A(I,J),J=1,N) ENDDODO I=1,N T=A(2,I)A(2,I)=A(5,J)A(5,J)=TENDDODO I=1,NWRITE(*,10)(A(I,J),J=1,N) ENDDODO I=1,N DO J=1,NA(I,J)=A(I,J)/A(I,I) ENDDOENDDODO I=1,NWRITE(*,10)(A(I,J),J=1,N) ENDDO10 FORMAT(1X,5I5)END12. 按以下格式打印
22、出杨辉三角形的前N行。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1PARAMETER(N=10)INTEGER A(N,N),I,JDO I=1,N A(I,1)=1 A(I,I)=1ENDDODO I=3,N DO J=2,I-1 A(I,J)=A(I-1,J)+A(I-1,J-1) ENDDOENDDODO I=1,N WRITE(*,10)(A(I,J),J=1,I)ENDDO10 FORMAT(1X,10I5)END第八章 子程序第173页 1、6、8、12、131.指出下列错误的语句函数定义:(1)F(X,Y)=X+Y+2+A-B 正确 (
23、2)SUM(X(2),Y,Z)=3*Y+(X(2)+Z)*Z 错误(3)F(X,Y,X)=X*2-Y+X+C-SIN(A) 错误(4)X2(Z,Y(I)=EXP(Z+1)-A*Y(I) 错误(5)LAN(A,B,C)=A*X+(B-C)*2-X*Y 正确6设计一个计算n! 的函数子程序,并调用该子程序计算数e的近似值。当 n!>1E8时停止计算。计算公式是:FUNCTION JC(N)JC=1DO I=1,N JC=JC*IENDDOENDPROGRAM EX6REAL*8 E,TE=0T=1.0I=0DO WHILE (T>1E-8) E=E+T I=I+1 T=1.0/JC(I
24、)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(T>0) K=MOD(T,10) S=S+K*3 T=T/10ENDDOF=SEND!主程序PROGRAM EX8INTEGER F,IDO I=100,999 IF(F(I)=I)PRINT*,IENDDOENDDO12设计一个子例行程序,计算一个任意数组A中正数、负数和0的个数及其和。!子程序SUBROUT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业女性心理健康课件
- 2025年湖南省中考数学模拟试卷(二)
- 政治必修一第四课:生产与经济制度
- 初级审计考试题库及答案
- 2024年纺织品设计师职业发展与成长路径试题及答案
- 共享学院面试题及答案
- 保险后勤面试题目及答案
- 广告设计师在不同文化背景下的设计试题及答案
- 小学数学AI教学应用手册
- 华为光芯片笔试题及答案
- 中国功夫与经络智慧树知到期末考试答案2024年
- 2024年网络安全知识竞赛考试题库400题(含答案)
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 2023年康复专科护士理论考核试题
- 南京信息工程大学毕业答辩模板
- NB-T 47013.15-2021 承压设备无损检测 第15部分:相控阵超声检测
- 安全检查表完整版本
- 加拉帕戈斯群岛的生物
- 药学专业社会实践报告3000字
- 宫颈炎的护理查房
- 酒店客房前厅接待考核表
评论
0/150
提交评论