收藏 分销(赏)

FORTRAN经典入门程序20例.doc

上传人:精*** 文档编号:2269781 上传时间:2024-05-24 格式:DOC 页数:8 大小:268.36KB
下载 相关 举报
FORTRAN经典入门程序20例.doc_第1页
第1页 / 共8页
FORTRAN经典入门程序20例.doc_第2页
第2页 / 共8页
FORTRAN经典入门程序20例.doc_第3页
第3页 / 共8页
FORTRAN经典入门程序20例.doc_第4页
第4页 / 共8页
FORTRAN经典入门程序20例.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、对于FORTRAN的初学者。这些例子可作为小练习。1.例题:计算工资问题。每小时工资为RATE,如果工作超过40小时,加班呢部分工资是正常时间工资的1.5倍。C Payroll with overtime program payroll real rate, hours, pay read (*,*) rate, hours if (hours40) then pay=40*rate+(hours-40)*1.5*rate else pay=hours*rate END IF print *,rate=, rate print *, hours=, hours print *,pay=,pay

2、 end2.学生成绩问题。大于80为A级。大于60小于80为B级。小于60为C级。 IF的嵌套。注意空格可以看清楚else if ,end if,print的内容. PROGRAM GRADESTUDENT READ *,GRADE IF (GRADE .GE. 80) THEN PRINT *,GRADE,GRADE=A ELSE IF (GRADE.LT.60) THEN PRINT*,GRADE,GRADE=C ELSE PRINT*,GRADE,GRADE=B END IF END IF END3.三个数按从小到大排序。PROGRAM MAXMIN REAL A,B,C,T READ

3、*,A,B,C IF (A.GT.B) THEN T=A A=B B=T ELSE END IF IF (B.GT.C) THEN T=B B=C C=T ELSE END IF IF (A.GT.B) THEN T=A A=B B=T END IF PRINT *,A,B,C END4.运用EISE IF语句。重做例子2PROGRAM ex2 READ (*,*) GRADE IF (GRADE .GE. 80.0) THEN PRINT *, GRADE,=A ELSE IF(GRADE .GE. 70.0)THEN PRINT *, GRADE,=B ELSE IF(GARDE .GE.

4、 60.0)THEN PRINT *, GRADE,=C ELSE PRINT *, GARDE,=D END IF END5. 计算 PROGRAM EQUATION READ (*,*) X IF (X .GE. 0.0) Y=3*X+6 IF (X .LT. 0.0) Y=-X*2+2*X-8 PRINT *,X=,X, Y=,Y END6.CONTINUE语句。为了使循环的起止范围清晰,使用终端语句例:求5!program ex1 FACT=1 do 10, N=1,5,1 #DO 语句标号,循环不变量=初值,终值,步长 FACT=FACT*N10 continue print*,FA

5、CT end求1!+2!+3!+N!READ *,N FACT=1 sum=0.0 do 10, I=1,N,1 FACT=FACT*I SUM=SUM+FACT10 continue print*,SUM end7.求EX=1+X+X2/2!+X3/3!+.+XN/N! READ *,X,N sum=1 TERM=1 do 10, I=1,N,1 TERM=TERM*X/I SUM=SUM+TERM10 continue print*,EXP(,X,),SUM end8.打印九九乘法表 do 10,I=1,9,1 do 20,J=1,I PRINT*,I,*,J,=,I*J20 CONTIN

6、UE10 CONTINUE end9.百钱买百鸡公鸡5元每只。母鸡3元每只,小鸡1元三只。求100元买一百只鸡。 INTEGER X,Y,Z DO 10,X=0,100 DO 20,Y=0,100 DO 30,Z=0,100 IF(X+Y+Z .EQ. 100)THEN IF(15*X+9*Y+Z .EQ. 300)PRINT *,X,Y,Z END IF30 CONTINUE20 CONTINUE10 CONTINUE END10.DO循环用来处理循环次数确定的情况比较方便。在处理无法事先知道循环次数时,使用当型循环。(1)DO WHILE DO 标号,WHILE(逻辑表达式)循环体CONT

7、INUE 标号例 统计若干同学的得分并计算平均值。INTEGER SCORE,COUNT READ*,SCORE SUM=0 COUNT=0 DO 10, WHILE(SCORE .GT. 0.0) SUM=SUM+SCORE COUNT=COUNT+1 READ *,SCORE10 CONTINUE AVER=SUM/COUNT PRINT *,AVER END11.辗转相除法求最大公约数。如26和6的最大公约数。先用27除以6,余数是3,再用6除以3,余数为0,则3就是最大公约数。命令MOD()求余数。INTEGER M,N,R,T READ*,M,NIF (M .LT. N)THEN T

8、=M M=N N=T END IF R=MOD(M,N) DO 10, WHILE(R .NE. 0) M=N N=R R=MOD(M,N)10 CONTINUE PRINT *,zui da gong yue shu,N END12.判断一个数是否是素数。SQRT()开根号 READ *,N MAX=sqrt(real(N) I=2 DO 10, WHILE (I .LE. MAX .AND. MOD(N,I) .NE. 0) I=I+110 CONTINUE IF(I .GT. MAX)THEN PRINT*,N,IS A PRIME NUMBER ELSE PRINT *,N,IS NO

9、T A PRIME NUMVER END IF END13.求100和200之间能被3或7整除的自然数。 I=10010 IF(I .LE. 200)THEN IF (MOD(I,3) .EQ. 0 .OR. MOD(I,7) .EQ. 0)THEN PRINT*,I,ABLE ELSE PRINT*,I,UNABLE END IF I=I+1 GOTO 10 END IF END14. 直到型循环,UNTIL 语句实现直到型循环。 格式“ DO S1,UNTIL(条件) 循环体 标号S1 CONTINUE例14用直到型循环求5! FORTRAN不支持UNTIL语句。INTEGER I,PRO

10、DUCT I=1 PRODUCT=1 DO 10, UNTIL(I .GT. 5) PRODUCT=PRODUCT*I I=I+110 CONTINUE PRINT *,5!=,PRODUCT ENDFORTRAN不支持UNTIL语句。让我们改成DO WHILE格式。INTEGER I,PRODUCT I=1 PRODUCT=1 DO 10, WHILE(I .LT. 5) PRODUCT=PRODUCT*I I=I+110 CONTINUE PRINT *,5!=,PRODUCT END15. INTEGER R,I,J,S,T,SUMDO 10, I=100,999,1 T=I SUM=0

11、 DO 20 ,J=1,3,1 R=MOD(T,10) SUM=SUM+R*3 T=T/1020 CONTINUE IF (SUM .EQ. I) PRINT *,I,is a daffodil NUMBER10 CONTINUE END15.求一元二次方程的根 。DOUBLE PRECISION A, B, CCOMPLEX X1,X2READ *,A,B,CIF(B*2-4*A*C .GE.0)THEN X1=CMPLX(-B+SQRT(B*2-4*A*C)/(2*A),0.0) X2=CMPLX(-B-SQRT(B*2-4*A*C)/(2*A),0.0) ELSE X1=CMPLX(-B

12、/(2*A),SQRT(-(B*2-4*A*C)/(2*A) X2=CMPLX(-B/(2*A),-SQRT(-(B*2-4*A*C)/(2*A) END IF PRINT *,X1,X2 END16. 打印此图像。CHARACTER*9 LINE DO 10, I=-4,4,1 K=1 DO 40 J=1,ABS(I),1 LINE(K:K)= K=K+140 CONTINUE DO 20, J=1, 2*(4-ABS(I)+1,1 LINE(K:K)=* K=K+120 CONTINUE PRINT*,LINE DO 30, J=1,9,1 LINE(J:J)= 30 CONTINUE10

13、 CONTINUE END 17.输出数组中的数值。 INTEGER A(1:10)DO 10,I=1,10,1 READ *,A(I)10 CONTINUE PRINT *,A END18. 利用DO循环对数组进行输入和输出。从键盘上输入十个数,按顺序逐个放入到A(1)到A(10)中。 INTEGER A(1:10) DO 10,I=1,10,1 READ *,A(I)10 CONTINUE DO 20,I=1,9,2 PRINT *,A(,I,),A(I)20 CONTINUE END19. 双重循环将从终端读入的数据赋值给W数组中的各元素。REAL W(1:3,1:2) #表示一个三行两

14、列的数组,当前面数一样时,可以写出 W(3,2) DO 10,I=1,3,1 DO 20, J=1,2,1 READ *,W(I,J)20 CONTINUE10 CONTINUE PRINT*,W END20。输入10名学生的成绩,统计各个分数段的人数。 INTEGER GRADE(1:10),COUNTER(0:10) READ *,(GRADE(I),I=1,10,1) DO 10, I=1,10,1 COUNTER(GRADE(I)/10)=COUNTER(GRADE(I)/10)+110 CONTINUE DO 20,I=0,10,1 PRINT *,COUNTER(I),=,I*10,(I+1)*10-120 CONTINUE END21.顺序查找。一组数据从第一个开始找,折半查找,顺序查找适用数据少的情况,折半查找用于数据多的情况,但数据必须按顺序排列。INTEGER A(1:7)DATA A/55,62,10,58,22,33,66/READ *,XDO 10, I=1,7,1 IF(A(I) .EQ. X) GOTO 2010 CONTINUE20 IF (I7)THEN PRINT *,X,it is not here ELSE PRINT *,X,it is in the A the,I,position END IF END

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服