Fortran語言編程小結(jié)_第1頁
Fortran語言編程小結(jié)_第2頁
Fortran語言編程小結(jié)_第3頁
Fortran語言編程小結(jié)_第4頁
Fortran語言編程小結(jié)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1.單雙精度

ProgramexOl

implicitnone

real(kind=4)::a

real(kind=8)::b

a=3._4!確定這個數(shù)字是使用單精度

b=3._8!確定這個數(shù)字是使用雙精度

write(*,*)a,b

EndprogramexO1

2.判斷kind值

programex02

Implicitnone!判斷能夠統(tǒng)計9個位數(shù)整數(shù)kind值

integer,parameter::long_int=selected_int_kind(9)!判斷能夠統(tǒng)計3個位數(shù)整數(shù)kind值

integer,piinimeter::short_int=sclcctcd_int_kind(3)

!判斷能夠有3個有效位數(shù),指數(shù)能夠統(tǒng)計到3浮點(diǎn)數(shù)kind值

integer,parameter::long_real=selected_real_kind(10,50)

!判斷能夠有10個有效位數(shù),指數(shù)能夠統(tǒng)計到50浮點(diǎn)數(shù)kind值

integer,parameter::short_real=selected_real_kind(3,3)

integer(kind=long_int)::a=123456

intcgcr(kind=short_int)::b=123

real(kind=long_real)::c=+1.23456789D45

rcal(kind=short_rcal)::d=+1230

write(*,"(I3JX,I1O)")long_int,a

write(*,"(I3JXJ10)")short_int,b

write(*,"(I3JX,E10.5)")long_real,c

write(*,"(I3,lX,E10.5)")short_real,d

END

3.TYPE

programex0434

implicitnone

Type::person!開始建立person這個類型

character(len=30)::name!人名

integer::age!年紀(jì)

integer::height!身高

INTEGER::weight!體重

character(len=80)::address!地址

Endtypeperson

type(person)::a!中明一個person類型變量

write(*.*)"NAME:"

read(*,*)a%name

wrile(*,*)"AGE:"

read(*,*)a%age

write(*,*)"HEIGHT:"

read(*,*)a%height

write(*,*)"WEIGHT:"

rcad(*,*)a%weight

write(*,*)"ADDRESS:"

read(*,*)a%address

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

100fomiatC'Namez';AlO/,"Age",13/,"Height:M3/,"Weight:",I3/.&

"Addres:".A80)

End

4.REAL與INTEGER

Programcx0431

implicitnone

integer::a=l

integer::b=2

real::c

c=a/b!c=l/2=0,即使c是浮點(diǎn)數(shù),但因為a,b是整數(shù),計算a/b時會用整數(shù)去計算.

write(*;,(F5.2)")c

End

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

writc(*JOO)a.b

1(X)format(L5,L4)

End

8.Programex0415

character(len=20)string

character(Ien=5)substring

string="Haveaniceday."

substring="nice"

write(*,*)ichar('A')!輸出字符AASCII碼

write"*)char(65)!輸出ASCII碼65所代表字符,也就是A

write(*,*)len(string)!輸出字符串string申明時長度

writc(*,*)lcn_trim(s(ring)!輸出字符串string內(nèi)容長度

write(*,*)index(string,substring)!nice在Haveaniceday第8個位置

End

9.Programex0414

character(len=6)first

character(len=10)second

character(lcn=20)add

first="Happy"

second="Birthday"

add=first//second!經(jīng)由兩個連續(xù)除號能夠連接兩個字符串

write(*,100)add

100FORMAT,生日愉快"A)

End

10.帶精度計算

Programex0408

rcal(kind=8)::a.b

a=l

b=0.1

write"*)a,"+",b;'=",a+b

End

H.邏輯if語句

Programcx0504

implicitnone

integerrain,windspeed

logicalr.w

write(*,*)"Rain:"

read(*.*)rain

write"*)"Wind:"

read(*,*)windspeed

r=(rain>=500)!假如rain>=150,r=.tnie,不然r=.false.

w=(windspeed>=10)!假如windspeed>=10,w=.true,不然w=.false.

if(r.or.w)then!只要r或w有一個值是true就成立

"停頓上班上課’

else

wri【c(*,*)"照常上班上課’

Endif

End

12.SelectCase使用方法

Programex0512

implicitnone

integer::score

charactergrade

writc(*,*),,Scorc:"

read(*,*)score

selectcase(score)

case(9O:IOO)

grade="A"

case(80:89)

grade='B'

casedefault

grade='?*

Endselect

write(*,,,('Grade:;A1)")grade

End

13.IFGOTO語句

PROGRAMexO514

IMPLICITNONE

REALheight

REALweight

WRITE(*,*)"height:"

READE,*)height

WRITER,*)"weight:"

READ(*,*)weight

ir(weight>height-100)GOTO200

iOOWRITE(*,*)"Undercontrol."

GOTO300

200WRITE(*,*)"Toofat!"

300STOP

END

14.DOWHILE循環(huán)

Programcx0604

implicitnone

integer,parameter::liniii=l()

integercounter

integer::ans=0

counter=2

dowhile(counter<=limit)

ans=ans+counter

counter=counter+2

enddo

write(*,*)ans

END

15.CYCLE,EXIT語句

Programcx0609

implicitnone

integer::i,j

loop1:doi=l,3

loop2:doj=1.3

if(i==3)exitloop1!跳離loop1循環(huán)

if(j==2)cycleIoop2!術(shù)做loop2循環(huán)

write(*.)i,j

enddoloop2

enddoloop1

End

16.大小寫字符

Programex0612

implicitnone

integeri

integerstrlen

characterlen=20)::string

write(*,*)"String:"

read(*,*)string

strlen=LEN_TRIM(s(ring)

doi=I,strlen

string(i:i)=char(ichar(string(i:i))+32)

enddo

write(*,"('encoded:\A20)")string

End

17.循環(huán)計算

Programex0614

implicitnone

reala.b.ans

character::key='y'!為了最少循環(huán)一次

dowhile(key=-y'.or.key==Y')

read(*,*)a

read(*,"(Al)")key

read(*,*)b

selectcase(key)

case('+')

ans=a+b

case('-')

ans=a-b

case('*')

ans=a*b

casc(7')

ans=a/b

casedefault

write(*,"('Unknownoperator\AI)")key

stop

endselect

write(*,,,(F6.2,AI,F62,=',F6.2)“)a,key,b,ans

write(*,*)"(Y/y)todoagain.(Other)toexit."

rcad(*,"(Al)")key

enddo

End

18.矩陣相加

pogramex

implicitnone

integer,parameter::row=2

integer,parameter::col=2

integer::matrixA(row.col)

integer::matrixB(row.col)

integer::matrixC(ro\v,col)

integerr

integerc

writc(*,*)"MatrixA”

dor=I,row

doc=l,col

write(*,H('A(',n,V,II,?)=')")r,c

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

enddo

enddo

write(*,*)"MatrixB"

dor=1,row

doc=l,col

write(*,"(,B(',n,;,n,A『)r,c

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

enddo

enddo

write(*,*)"MatrixA+B="

dor=l,row

doc=l,col

matrixC(r,c)=matrixB(r,c)+niatrixA(i;c)

write(久113)")r,c,matrixC(r,c)

enddo

enddo

endpogramex

[write("(I3J3J,I3,I3)")((mc[i,j),i=l,2)j=l,2)j

19.programex

implicitnone

integer,parameter::row=2

integer,parameter::col=2

integer::a(2,2)=(/1,2,3.4/)

!a(lj)=l,a(2,l)=2,a(1,2)=3,a(2,2)=4

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

integer::c(2)

write(**)a,2)

write(*.*)a(:,l)

c=a(:,l)!c(l)=a(l,l),c(2)=a(2,l)

write(*,*)c!c(l),c(2)

c=a(2,:)!c(l)=a(2J)tc(2)=a(2,2)

write(*,*)c!c(l),c(2)

write(*,*)c(2:l:-l)!c(2),c(l)

c=b(1:4:2)!c(l)=b(l),c(2)=b(3)

write(*,*)c!c(l),c⑵

End

20.EORALL語句

Programex

Implicitnone

integer::LJ

integer,parameter::size=5

integer::a(size,size)

forall(1=1:size,J=1:size,I>J)a(I,J)=1!上半部分

forall(I=l:size,J=l:size.I==J)a(I,J)=2!對角線

forall(I=l:size,J=l:size,l<J)a(I,J)=3!下半部分

writc(*,"(5(515/))")a

End

21.Allocatable

ProgramEX

Implicitnone

integer::size,error=0

integer,parameter::onc_mb=1024*1024!1MB

character,allocatable::a(:)

Do

size=size+one_mb!

allocate(a(size),stat=enor)

if(crror/=0)exit

write(*;,('Allocate',110,'bytes')*')size

writc(*,,,(ri0.2,'MDused')")rcal(sizc)/rc<il(onc_mb)

deallocate(a)

Enddo

End

22.Function函數(shù)

Programex

implicitnone

real::a=10

real::b=20

real::add

write(*."(f6.2)")add(a.b)

End

Functionadd(a,b)

implicitnone

real::a.b

real::add

add=a*b

End

23.SAVE語句

Programex

Implicitnone

callsub()

callsub()

callsub()

Endprogram

Subroutinesub()

Implicitnone

Integer::count=I

Savecount!指定save變量永遠(yuǎn)活著,不會忘記它內(nèi)容

Write(*,*)count

count=couni+1

End[運(yùn)行結(jié)果:123]

24.生成隨機(jī)數(shù)

programex

implicitnone

interface!定義函數(shù)接LI

functionrandom10(1bound,ubound)

implicitnone

real二Ibound、ubound

real::random10(10)

endfunction

endinterface

real::a(IO)

CALLRANDOM_SEED()!系統(tǒng)依照日期和時間隨機(jī)地提供種子

a=random10(1.0,10.0)

write(*;,(IOF6.2)")a

end

functionrandom10(lbound.abound)

implicitnone

real::Ibound.ubound

real::ien

real::random10(10)

real(

integeri

len=ubound-Ibound!計克范圍大小

doi=1,10

callrandom_number(t)!t會

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論