FORTRAN经典入门程序20例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档