FORTRAN经典入门程序20例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于FORTRAN的初学者。这些例子可作为小练习。
1.例题:计算工资问题。每小时工资为RATE,如果工作超过40小时,加班呢部分工资是正常时间工资的1.5倍。
C Payroll with overtime
program payroll
real rate, hours, pay
read (*,*) rate, hours
if (hours>40) then
pay=40*rate+(hours-40)*1.5*rate
else
pay=hours*rate
END IF
print *,"rate=", rate
print *, "hours=", hours
print *,"pay=",pay
end
2.学生成绩问题。大于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
END
3.三个数按从小到大排序。
PROGRAM MAXMIN
REAL A,B,C,T
READ *,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
ELSE
END IF
IF (A.GT.B) THEN
T=A A=B B=T
END IF
PRINT *,A,B,C
END 4.运用EISE IF 语句。重做例子2
PROGRAM 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. 60.0)THEN PRINT *, GRADE,"=>C"
ELSE PRINT *, GARDE,"=>D"
END IF END
5. 计算236,x 0
y 28,0x x x x +≥=-+-<
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
END
6.CONTINUE 语句。为了使循环的起止范围清晰,使用终端语句
例:求5!
program ex1
FACT=1
do 10, N=1,5,1 ##DO 语句标号,循环不变量=初值,终值,步长 FACT=FACT*N
10 continue
print *,FACT
end
求1!+2!+3!+···+N !
READ *,N
FACT=1
do 10, I=1,N,1
FACT=FACT*I
SUM=SUM+FACT
10continue
print*,SUM
end
7.求E^X=1+X+X^2/2!+X^3/3!+...+X^N/N!
READ *,X,N
sum=1
TERM=1
do 10, I=1,N,1
TERM=TERM*X/I
SUM=SUM+TERM
10continue
print*,"EXP(",X,")",SUM
end
8.打印九九乘法表
do 10,I=1,9,1
do 20,J=1,I
PRINT*,I,"*",J,"=",I*J
20CONTINUE
10CONTINUE
end
9.百钱买百鸡
公鸡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 IF
30CONTINUE
20CONTINUE
10CONTINUE
END
10.DO循环用来处理循环次数确定的情况比较方便。在处理无法事先知道循环次数时,使用当型循环。
(1)DO WHILE
DO 标号,WHILE(逻辑表达式)
循环体
CONTINUE 标号
例统计若干同学的得分并计算平均值。
INTEGER SCORE,COUNT