Fortran语言编程小结Word格式.docx

上传人:b****8 文档编号:22674155 上传时间:2023-02-05 格式:DOCX 页数:16 大小:18.42KB
下载 相关 举报
Fortran语言编程小结Word格式.docx_第1页
第1页 / 共16页
Fortran语言编程小结Word格式.docx_第2页
第2页 / 共16页
Fortran语言编程小结Word格式.docx_第3页
第3页 / 共16页
Fortran语言编程小结Word格式.docx_第4页
第4页 / 共16页
Fortran语言编程小结Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Fortran语言编程小结Word格式.docx

《Fortran语言编程小结Word格式.docx》由会员分享,可在线阅读,更多相关《Fortran语言编程小结Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

Fortran语言编程小结Word格式.docx

name!

人名

integer:

age!

年龄

height!

身高

INTEGER:

weight!

体重

character(len=80):

address!

地址

Endtypeperson

type(person):

a!

声明一个person类型的变量

write(*,*)"

NAME:

"

read(*,*)a%name

AGE:

read(*,*)a%age

HEIGHT:

read(*,*)a%height

WEIGHT:

read(*,*)a%weight

ADDRESS:

read(*,*)a%address

write(*,100)a%name,a%age,a%height,a%weight

100format("

Name:

A10/,"

Age:

I3/,"

Height:

Weight:

I3/,&

"

Addres:

A80)

End

4.REAL与INTEGER

Programex0431

a=1

b=2

real:

c

c=a/b!

c=1/2=0,虽然c是浮点数,但因为a,b是整数,计算a/b时会用整数去计算.

write(*,"

(F5.2)"

)c

5.DATA变量表/初值表/,变量表/初值表/,…

PROGRAMex0430

IMPLICITNONE

INTEGERA

REALB

COMPLEXC

CHARACTER(20)STR

DATAA,B,C,STR/1,2.0,(1.0,2.0),'

FORTRAN77'

/

WRITE(*,*)A,B,,C,STR

6.复数实虚部

Programex0430

complex:

c=(1,2)

write(*,100)real(c),'

+'

aimag(c),'

i'

100format(f5.1,a1,f5.1,a1)

7.逻辑输出

Programex0416

logicala,b

a=.true.

b=.false.

write(*,100)a,b

100format(L5,L4)

8.Programex0415

character(len=20)string

character(len=5)substring

string="

Haveaniceday."

substring="

nice"

write(*,*)ichar('

A'

)!

输出字符A的ASCII码

write(*,*)char(65)!

输出ASCII码65所代表的字符,也就是A

write(*,*)len(string)!

输出字符串string声明时的长度

write(*,*)len_trim(string)!

输出字符串string内容的长度

write(*,*)index(string,substring)!

nice在Haveaniceday的第8个位置

9.Programex0414

character(len=6)first

character(len=10)second

character(len=20)add

first="

Happy"

second="

Birthday"

add=first//second!

经由两个连续的除号可以连接两个字符串

write(*,100)add

100FORMAT('

生日快乐'

/,A)

10.带精度计算

Programex0408

real(kind=8):

a,b

b=0.1

write(*,*)a,"

+"

b,"

="

a+b

11.逻辑if语句

Programex0504

integerrain,windspeed

logicalr,w

write(*,*)"

Rain:

read(*,*)rain

Wind:

read(*,*)windspeed

r=(rain>

=500)!

如果rain>

=150,r=.true,不然r=.false.

w=(windspeed>

=10)!

如果windspeed>

=10,w=.true,不然w=.false.

if(r.or.w)then!

只要r或w有一个值是true就成立

停止上班上课"

else

照常上班上课"

Endif

12.SelectCase用法

Programex0512

score

charactergrade

Score:

read(*,*)score

selectcase(score)

case(90:

100)

grade='

case(80:

89)

B'

casedefault

?

'

Endselect

('

Grade:

A1)"

)grade

13.IFGOTO语句

PROGRAMex0514

IMPLICITNONE

REALheight

REALweight

WRITE(*,*)"

height:

READ(*,*)height

weight:

READ(*,*)weight

IF(weight>

height-100)GOTO200

100WRITE(*,*)"

Undercontrol."

GOTO300

200WRITE(*,*)"

Toofat!

300STOP

END

14.DOWHILE循环

Programex0604

integer,parameter:

limit=10

integercounter

ans=0

counter=2

dowhile(counter<

=limit)

ans=ans+counter

counter=counter+2

enddo

write(*,*)ans

15.CYCLE,EXIT语句

Programex0609

i,j

loop1:

doi=1,3

loop2:

doj=1,3

if(i==3)exitloop1!

跳离loop1循环

if(j==2)cycleloop2!

重做loop2循环

write(*,"

i2,'

'

)'

)"

)i,j

enddoloop2

enddoloop1

16.大小写字符

Programex0612

integeri

integerstrlen

character(len=20):

string

String:

read(*,*)string

strlen=LEN_TRIM(string)

doi=1,strlen

string(i:

i)=char(ichar(string(i:

i))+32)

encoded:

A20)"

)string

17.循环计算

Programex0614

reala,b,ans

character:

key='

y'

为了至少循环一次

dowhile(key=='

.or.key=='

Y'

read(*,*)a

read(*,"

(A1)"

)key

read(*,*)b

selectcase(key)

case('

ans=a+b

-'

ans=a-b

*'

ans=a*b

/'

ans=a/b

casedefault

Unknownoperator'

)key

stop

endselect

(F6.2,A1,F6.2,'

='

F6.2)"

)a,key,b,ans

(Y/y)todoagain.(Other)toexit."

18.矩阵相加

pogramex

row=2

col=2

matrixA(row,col)

matrixB(row,col)

matrixC(row,col)

integerr

integerc

MatrixA"

dor=1,row

doc=1,col

A('

I1,'

)='

)r,c

read(*,*)matrixA(r,c)

MatrixB"

B('

read(*,*)matrixB(r,c)

MatrixA+B="

matrixC(r,c)=matrixB(r,c)+matrixA(r,c)

I3)"

)r,c,matrixC(r,c)

endpogramex

[write(*,"

(I3,I3,/,I3,I3)"

)((mc(i,j),i=1,2),j=1,2)]

19.programex

implicitnone

a(2,2)=(/1,2,3,4/)

!

a(1,1)=1,a(2,1)=2,a(1,2)=3,a(2,2)=4

b(4)=(/5,6,7,8/)

c

(2)

write(*,*)a,2)

write(*,*)a(:

1)

c=a(:

1)!

c

(1)=a(1,1),c

(2)=a(2,1)

write(*,*)c!

c

(1),c

(2)

c=a(2,:

)!

c

(1)=a(2,1),c

(2)=a(2,2)

write(*,*)c(2:

1:

-1)!

c

(2),c

(1)

c=b(1:

4:

2)!

c

(1)=b

(1),c

(2)=b(3)

20.FORALL语句

Programex

Implicitnone

I,J

size=5

a(size,size)

forall(I=1:

size,J=1:

size,I>

J)a(I,J)=1!

上半部分

size,I==J)a(I,J)=2!

对角线

size,I<

J)a(I,J)=3!

下半部分

(5(5I5,/))"

)a

21.Allocatable

ProgramEX

size,error=0

one_mb=1024*1024!

1MB

character,allocatable:

a(:

Do

size=size+one_mb!

allocate(a(size),stat=error)

if(error/=0)exit

Allocate'

I10,'

bytes'

)size

(F10.2,'

MBused'

)real(size)/real(one_mb)

deallocate(a)

Enddo

22.Function函数

a=10

b=20

add

(f6.2)"

)add(a,b)

Functionadd(a,b)

a,b

add

add=a*b

23.SAVE语句

callsub()

Endprogram

Subroutinesub()

Implicitnone

Integer:

count=1

Savecount!

指定save变量永远活着,不会忘记它的内容

Write(*,*)count

count=count+1

End[运行结果:

123]

24.生成随机数

programex

interface!

定义函数的接口

functionrandom10(lbound,ubound)

lbound,ubound

random10(10)

endfunction

endinterface

a(10)

CALLRANDOM_SEED()!

系统根据日期和时间随机地提供种子

a=random10(1.0,10.0)

(10F6.2)"

end

functionrandom10(lbound,ubound)

len

random10(10)

realt

len=ubound-lbound!

计算范围大小

doi=1,10

callrandom_number(t)!

t会是0~1之间的随机数

random10(i)=lbound+len*t!

把t转换成lbound~ubound间的随机数

25.MODULE语句

Moduleglobal

integera,b

commona,b

Endmodule

Programex0834

useglobal

write(*,*)a,b

return

Endsubroutine

26.写文件到text

programex0902

open(unit=10,file="

test.txt"

write(10,"

(A20)"

)"

ILOVEYOU."

写到文件中

rewind(10)

read(10,"

)string!

从文件中读出来

写到屏幕上

end

27.随机成绩

programgendata

integerstudents

realr(3)

(4A5)"

座位"

"

语文"

数学"

英语"

callrandom_seed()

Howmanystudents?

read(*,*)students

doi=1,students

callrandom_number(r)

(6I5)"

)i,int(r*50+50)

endprogram

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1